你是否遇到过文件或目录具有可读写权限,但是使用root用户删除、修改时提示"Operation not permitted"的情况。可能是由于chattr设置了文件的隐藏保护权限导致。通过chattr命令修改文件或目录属性能够提高系统的安全性。与chmod命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr命令改变的。
chattr命令语法
chattr [+-=] [ASacdistu] File/Directory
参数说明:
+-=:分别为 [+ 增加] [- 减少] [= 设定] 指定属性 A :当设定了 A 这个属性时,文件或目录的存取时间atime (access) 将不可被修改。 S :这个功能有点类似 sync 的功能!就是会将数据同步写入磁盘当中!可以有效的避免数据流失! a :文件将只能增加数据,而不能删除,只有 root 才能设定这个属性。 c :这个属性设定之后,将会自动的将此文件『压缩』,在读取的时候将会自动解压缩出来,但是在储存的时候,将会先进行压缩之后再储存。 d :当 dump (备份)程序被执行的时候,设定 d 属性将可使该档案(或目录)具有 dump 功效! i :指定文件不能被删除、改名、也无法写入或新增数据!对于系统安全性有相当大的帮助! j :当使用 ext3 这个档案系统格式时,设定 j 属性将会使档案在写入时先记录在 journal 中! 但是当 filesystem 设定参数为 data=journalled 时,由于已经设定了日志了,所以这个属性无效! s :当文件设定了 s 参数时,他将会被完全的移除出这个硬盘空间。 u :与 s 相反的,当使用 u 来设定文件时,则数据内容其实还存在磁盘中,可以使用来 undeletion.
chattr使用实例
1、设置指定文件的隐藏属性,使其无法删除、修改。
chattr +i /home/config/config.conf #添加"i"隐藏属性后,就无法更动config.conf这个文件了
2、取消文件的删除、修改保护权限
chattr -i /home/config/config.conf #解除"i"这个隐藏属性
lsattr命令语法
lsattr [-aR] File/Directory
参数说明
-a :将隐藏文件的属性也列出来;
-R :连同子目录的数据也一并列出来!
lsattr使用实例
1、查看指定文件隐藏属性
lsattr file.txt