chattr +Si test.txt
给test.txt文件添加同步和不可变属性。
chattr -ai test.txt
把文件的只扩展(append-only)属性和不可变属性去掉。
chattr =aiA test.txt
使test.txt文件只有a、i和A属性。
最后,每个命令都支持-R选项,用于递归地对目录和其子目录进行操作。
3.ext2属性和文件权限的区别
几乎所有的系统管理员都理解UNIX风格文件系统的权限和所有者以及ls命令的显示,例如:
[root@typhoid nixe0n]# ls -al test*
-rw-rw-r-- 1 nixe0n users 0 Nov 17 17:02 test.conf
-rw-rw-r-- 1 nixe0n users 0 Nov 17 17:02 test.log
-rw-rw-r-- 1 nixe0n users 0 Nov 16 19:41 test.txt
从ls的输出结果看,这些文件属于用户nixe0n,而nixe0n所在的用户组是users。用户nixe0n本人和users用户组的成员尉有具有对文件 的修改权限,而其他的用户只有读取文件的权限。下面是lsattr命令的输出:
[root@typhoid nixe0n]# lsattr -a test*
---i-------- test.conf
----a------- test.log
------------ test.txt
输出结果显示,test.log只能被添加,而test.conf文件不准修改。在UNIX系统中,如果一个用户以root的权限登录,文件系统的权限控 制将无法对root用户和以root权限运行的进程进行任何的限制。这样对于UNIX类的操作系统,如果攻击者通过远程或者本地攻击获得 root权限将可能对系统造成严重的破坏。而ext2文件系统可以作为最后一道防线,最大限度地减小系统被破坏的程度,并保存攻击者的 行踪。ext2属性是由sys_open()和sys_truncate()等系统调用检查和赋予的,不受用户识别号和其他因素的影响,在任何情况下,对具有 不可修改(immutable)属性的文件的进行任何修改都会失败,不管是否是root用户进行的修改。
但是,还有一个问题是root权限的用户可以通过删除i属性实现对文件的修改。这种防护只不过给获得root权限的攻击者加了一点小麻烦 罢了,系统的安全性并没有根本性的提高。
在2.1之前的内核版本中,存在一个安全层(securelevel)的特征。使用安全层可以解决上述问题,因为如果系统的安全层大于0,内核将 不允许对任何文件的i属性进行修改。这些版本的内核由sysctl命令的"kernel.securelevel"变量进行控制。如果在启动时,这个变量 的值被设置为1或者更大的值,内核将不允许对具有i属性和a属性文件进行修改,除非国旗动到单用户状态。