利用chattr命令保护备份及其它关健文件

因为工作需要,要对一些重要数据进行备份,但又怕不小心将这些备份文件删除掉,于是就想办法将这些文件保护起来,经多方查找,发现了Linux有一个chattr命令可以实现这一目的。

chattr命令基本语法:

chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录...]

属性有以下参数:

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

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

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

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

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

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

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

i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件系统的安全设置有很大帮助。

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

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

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

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

-R 递归处理,将指定目录下的所有文件及子目录一并处理。

-v<版本编号> 设置文件或目录版本。

-V 显示指令执行过程。

+<属性> 开启文件或目录的该项属性。

-<属性> 关闭文件或目录的该项属性。

=<属性> 指定文件或目录的该项属性。  

命令参考:

sudo chattr -V -R +a /home/bf/

命令效果:将/home/bf/下面的文件设置为只允许建立和修改文件,不允许删除文件,并显示处理过程。 取消命令:

sudo chattr -V -R -a /home/bf

这样就可以保护BF目录下的文件不被删除。其它参数亦可实现相应效果。  

查看文件夹的chattr设置情况命令:lsattr

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