CentOS 文件隐藏属性
1、chattr用于配置文件的隐藏属性
语法: chattr [-RVf] [-+=aAcCdDeijsStTu] [-v version] files... 选项与参数: +:增加某个特殊参数,其他原始存在参数不动; -:移除指定参数,其他参数不变; =:设定为chattr后面输入的参数
A:当设定了A这个属性时,若你有存取此文件/目录时,他的访问时间atime将不会被修改,可避免I/O较慢的机器过渡存取磁盘 S:一般文件是异步写入磁盘的,如果加上S这个属性,则同步写入 a:当设定a之后,这个文件将只能增加数据,不能删除也不能修改数据,仅root用户允许设定 c:这个属性设定后,将自动压缩文件,在读取时自动释放 d:当dump程序被执行的时候,设定d属性可使该文件/目录不会被dump备份 i:该属性可以让一个档案不能被删除、修改、设定链接也无法写入或新增资料,对于系统安全有帮助,仅root用户允许设定 s:当文件设定了s属性时,如果删除该文件,则无法找回 u:与s相反,当删除该文件,数据依据存在于磁盘中,可以使用来救援该文件
场景1:仅能在日志文件中追加内容而不能修改或删除内容
#使用chattr需要root的权限,并且这个命令并不做直接提示 [es@bigdata-senior01 ~]$ sudo chattr +a loga.txt [sudo] es 的密码: [es@bigdata-senior01 ~]$ lsattr loga.txt -----a---------- loga.txt [es@bigdata-senior01 ~]$ lsattr 1.txt ---------------- 1.txt #普通用户如果不适用sudo,无法正常使用chattr命令 [es@bigdata-senior01 ~]$ chattr +a 1.txt chattr: 不允许的操作 while setting flags on 1.txt [es@bigdata-senior01 ~]$ ll loga.txt -rw-r--r-- 1 es es 0 1月 12 21:43 loga.txt [es@bigdata-senior01 ~]$ echo $PATH > loga.txt #只能追加 -bash: loga.txt: 不允许的操作 [es@bigdata-senior01 ~]$ echo $PATH >> loga.txt [es@bigdata-senior01 ~]$ rm -rf loga.txt rm: 无法删除"loga.txt": 不允许的操作
用vi编辑后无法保存。
场景2:创建一个文件,无法进行删除。
[es@bigdata-senior01 ~]$ echo $HOME >1.txt [es@bigdata-senior01 ~]$ cat 1.txt /home/es [es@bigdata-senior01 ~]$ sudo chattr +i 1.txt [sudo] es 的密码: [es@bigdata-senior01 ~]$ lsattr 1.txt ----i----------- 1.txt [es@bigdata-senior01 ~]$ ll 1.txt -rw-rw-r-- 1 es es 9 1月 12 21:50 1.txt [es@bigdata-senior01 ~]$ rm 1.txt rm:是否删除有写保护的普通文件 "1.txt"?y rm: 无法删除"1.txt": 不允许的操作
2、lsattr用于查看文件的隐藏属性
lsattr显示文件的隐藏权限,格式为“lsattr [参数] 文件”。
在 Linux 系统中,文件的隐藏权限必须使用 lsattr 命令来查看,平时使用的 ls 之类的命令则看不出隐藏属性