2.22 chattr:改变文件的属性

作用:chattr可以防止关键文件被修改。

用法:chattr [选项]文件或目录

主要选项如下。

● -R:递归处理所有的文件及子目录。

● -V:详细显示修改内容,并打印输出。

● −:失效属性。

● +:激活属性。

● =:指定属性。

● A:Atime,告诉系统不要修改对这个文件的最后访问时间。

● S:Sync,一旦应用程序对这个文件执行了写操作,系统立刻把修改的结果写到磁盘中。

● a:Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。

● i:Immutable,系统不允许对这个文件进行任何修改。如果目录具有这个属性,那么任何进程只能修改目录下的文件,不允许建立和删除文件。

● D:检查压缩文件中的错误。

● d:No dump,在进行文件系统备份时,dump程序将忽略这个文件。

● C:Compress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据被压缩后才写入磁盘。

● s:Secure Delete,让系统在删除这个文件时,使用0填充文件所在的区域。

● u:Undelete,当一个应用程序请求删除一个文件时,系统会保留其数据块,以便以后能够恢复删除的这个文件。

说明:chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,如果Linux内核版本低于2.2,那么许多功能不能实现。同样−D检查压缩文件中的错误,需要2.5.19以上内核才能支持。另外,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/,/dev,/tmp,/var目录。

应用实例如下。

(1)恢复/root目录,即子目录的所有文件

        # chattr -R +u/root

(2)用chattr命令防止系统中某个关键文件被修改

在Linux下,有些配置文件(passwd,fatab)是不允许任何人修改的,为了防止被误删除或修改,可以设定该文件的“不可修改位(immutable)”,命令如下:

        # chattr +i /etc/fstab