使用chattr 给文件加锁

root用户是至高无上的用户,root几乎可以进行任何危险的系统操作,包括删除文件。如果不想文件被删除怎么办?使用chattr 能给文件加强制锁定的属性,即使是root用户也rm 删除不了,文件在文件系统层被锁定了。

chattr只支持Linux 的文件系统,如ext3、ext4、btrfs、xfs等之类,不支持NTFS、FAT32

chattr 的文件锁定功能大多数用在防止文件被误删除,这种锁定是可以解除的,不能完全保证文件不能被删除。

使用方法:

必须使用root权限执行

sudo   chattr  +i     文件路径           (i是禁止写入,禁止删除,+为添加属性,取消是-

sudo   chattr  -R   +i     文件夹路径    (-R 参数是递归操作的意思,适用于文件夹内所有的文件

chattr属性共有以下8种模式:

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

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

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

b:不更新文件或目录的最后存取时间。

c:将文件或目录压缩后存放。

d:当dump程序执行时,该文件或目录不会被dump备份。

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

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

s:彻底删除文件,不可恢复,因为是从磁盘上删除,然后用0填充文件所在区域。

u:当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件,用来防止意外删除文件或目录。

t:文件系统支持尾部合并(tail-merging)。

X:可以直接访问压缩文件的内容。

这些模式有很多用途:

A属性   添加到系统所有文件里有利于提高磁盘性能,每次访问文件不必每次修改文件最后访问时间。mount 加noatime 参数同样能实现这个功能。

S属性  文件实时同步功能,如果文件修改了会立即同步到磁盘上,适用于编辑文档的word文件,以免断电导致正在编辑的文件内容丢失。

a属性  只能增加文件,不能删除原有文件内容,防止篡改,适用于日志文件

c属性  实现文件系统级的文件压缩

i属性  不能修改文件,包括不能删除

s属性  文件删除了就是真正删除,恢复不了,适用于保密的文件

相对与chattr  ,lsattr是用来查看文件attr属性的

参考资料

http://baike.baidu.com/link?url=NG8TxFHqiNJK0XcSKQPgdxgYARt5m08N_c0D5ZFRNIzxSMyYbe3JRWsUe1PT69Hk16u7H2lUkr8V9pBbYIgFP_