linux系统下有许多文件权限设定的命令,本文主要介绍chattr工具给文件加隐藏属性,可以增加重要文件的安全性。

一、给文件加a属性,增加该属性后,该文件只能追加内容而不能覆盖删除,lsattr查看chattr权限

1.添加a属性

[root@www ~]# lsattr 1.txt   
-------------e- 1.txt

[root@www ~]# chattr +a 1.txt  
[root@www ~]# lsattr 1.txt
-----a-------e- 1.txt

[root@www ~]# echo 111112222244444 > 1.txt       //无法覆盖
-bash: 1.txt: Operation not permitted
[root@www ~]# echo 111112222244444 >> 1.txt    //追加内容
[root@www ~]# cat 1.txt
111112222244444
[root@www ~]# rm -r 1.txt
rm: remove regular file `1.txt'? y
rm: cannot remove `1.txt': Operation not permitted   //无法删除

2、去除a属性

[root@www ~]# chattr -a 1.txt

[root@www ~]# echo 55555 > 1.txt     //覆盖内容
[root@www ~]# cat 1.txt
55555


二、给文件加i属性,增加该属性后,该文件无法修改、删除

1、添加i属性

[root@www ~]# chattr +i 2.txt
[root@www ~]# echo 1111 > 2.txt
-bash: 2.txt: Permission denied
[root@www ~]# echo 1111 >> 2.txt
-bash: 2.txt: Permission denied
[root@www ~]# rm -rf 2.txt
rm: cannot remove `2.txt': Operation not permitted

2、去除i属性

[root@www ~]# chattr -i 2.txt
[root@www ~]# echo 2222 > 2.txt
[root@www ~]# cat 2.txt
2222


三、查看目录及其下所有文件的chattr属性,加-R选项

[root@www ~]# lsattr -R 222
-------------e- 222/222
222/222:
-------------e- 222/222/111
222/222/111:
-------------e- 222/222/111/123.txt
-------------e- 222/123.txt
-------------e- 222/install.log


[root@www ~]# chattr +i 222/222/111/123.txt

[root@www ~]# rm -rf 222
rm: cannot remove `222/222/111/123.txt': Operation not permitted

[root@www ~]# lsattr -R 222
-------------e- 222/222
222/222:
-------------e- 222/222/111
222/222/111:
----i--------e- 222/222/111/123.txt
-------------e- 222/123.txt
-------------e- 222/install.log


四、给目录增加chattr权限,加-d选项

[root@www ~]# lsattr -d 222
-------------e- 222
[root@www ~]# chattr +a 444
[root@www ~]# lsattr -d 444
-----a-------e- 444