一、chattr的命令详解
Linux chattr命令用于改变文件属性。
有时候你发现root权限都不能修改某个文件,大部分原因是chattr命令锁定该文件了。通过chattr命令修改属性能提高系统的安全性,但它并不适合所有的目录。chattr命令不能保护
/、/dev、 /tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执
行权限,更底层的属性控制是由chattr来改变的。
语法:chattr [-RVf] [-+=AacDdeijsSu] [-v version] files
-R 递归处理,将指定目录下的所有文件及子目录一并处理。
-v<版本编号> 设置文件或目录版本。
-V 显示指令执行过程。
+<属性> 在原有参数的基础上,追加参数。
-<属性> 在原有参数的基础上,移除参数。
=<属性> 更新为指定参数设定。
属性模式:
1、A 即Atime,告诉系统不要修改对这个文件的最后访问时间
2、a 即Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件
3、b:不更新文件或目录的最后存取时间
4、c 即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作
5、D 检查压缩文件中的错误
6、d 当dump程序执行时,该文件或目录不会被dump备份
7、i 即Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件
8、j 即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效
9、s 彻底删除文件,不可恢复,因为是从磁盘上删除。
10、S:即Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
11、u 当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件,用来防止意外删除文件或目录.和s相反
实例:
1、用chattr命令防止系统中某个关键文件被修改
chattr +i /etc/resolv.conf lsattr /etc/resolv.conf # 查看权限
2、让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件
chattr +a /var/log/messages