Catalogue
有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。
通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。
这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。
chattr
修改文件在Linux第二扩展文件系统(E2fs)上的特有属性
chattr [ -RVf ] [ -v version ] [ mode ] files…
[ mode ]部分是由+-=和[ ASacDdIijsTtu ]这些字符组合的,这部分是用来控制文件的
属性。
-R 递归地修改目录以及其下内容的属性. 如果在递归目录时遇到了符号链接,遍历将跳过
-V 详尽地给出chattr的输出信息并打印出程序的版本
-vversion 设置文件系统的版本
操作符+
用来在文件已有属性的基础上增加选定的属性; -
用来去掉文件上的选定的属性;而=
用来指定该文件的唯一属性
字符`ASacdisu’用作文件新属性的选项: 不更新atime(A),同步更新(S),只能添加(a), 压缩(c),不可变(i),不可转移(d),删除保护(s)以及不可删除(u)
1 | $ chattr -i resolv.conf |
1 | 当修改设置了'A'属性的文件时,它的atime记录不会改变. 这可以在笔记本电脑系统中避免某些磁盘I/O处理. |
lsattr
-R 递归地列出目录以及其下内容的属性
-V 显示程序版本
-a 列出目录中的所有文件,包括以`.’开头的文件的属性
-d 以列出其它文件的方式那样列出目录的属性, 而不列出其下的内容
-v 显示文件版本
1 | $ lsattr /etc/resolv.conf |