[root@localhost ~]# chattr [+-=] [屬性] 文件或目錄名
+ 表示給文件或目錄添加屬性,- 表示移除文件或目錄擁有的某些屬性,= 表示給文件或目錄設定一些屬性。| 屬性選項 | 功能 |
|---|---|
| i | 如果對文件設置 i 屬性,那么不允許對文件進行刪除、改名,也不能添加和修改數據; 如果對目錄設置 i 屬性,那么只能修改目錄下文件中的數據,但不允許建立和刪除文件; |
| a | 如果對文件設置 a 屬性,那么只能在文件中増加數據,但是不能刪除和修改數據; 如果對目錄設置 a 屬性,那么只允許在目錄中建立和修改文件,但是不允許刪除文件; |
| u | 設置此屬性的文件或目錄,在刪除時,其內容會被保存,以保證后期能夠恢復,常用來防止意外刪除文件或目錄。 |
| s | 和 u 相反,刪除文件或目錄時,會被徹底刪除(直接從硬盤上刪除,然后用 0 填充所占用的區域),不可恢復。 |
[root@localhost ~]# touch ftest
#建立測試文件
[root@localhost ~]# chattr +i ftest
[root@localhost ~]# rm -rf ftest
rm:cannot remove 'ftest':Operation not permitted
#無法刪除"ftesr",操作不允許
#被賦予i屬性后,root不能刪除
[root@localhost ~]# echo 111>>ftest
bash:ftest:Permission denied
#權限不夠,不能修改文件中的數據
[root@localhost ~]# mkdir dtest
#建立測試目錄
[root@localhost dtest]# touch dtest/abc
#再建立一個測試文件abc
[root@localhost ~]# chattr +i dtest
#給目錄賦予i屬性
[root@localhost ~]# cd dtest
[root@localhost dtest]# touch bed
touch: cannot touch 'bed':Permission denied
#無法創建"bcd",權限不夠,dtest目錄不能新建文件
[root@localhost dtest]# echo 11>>abc
[root@localhost dtest]# cat abc
11
#可以修改文件內容
[root@localhost dtest]# rm -rf abc
rm: cannot remove 'abc': Permission denied
#無法刪除"abc",權限不夠
給設置有 i 屬性的文件刪除此屬性也很簡單,只需將 chattr 命令中 + 改為 - 即可。
[root@localhost ~]# mkdir -p /back/log
#建立備份目錄
[root@localhost ~]# chattr +a /back/log
#賦予a屬性
[root@localhost ~]# cp /var/log/messages /back/log
#可以復制文件和新建文件到指定目錄中
[root@localhost ~]# rm -rf /back/log/messages
rm: cannot remove '/back/log/messages': Permission denied
#無法刪除 /back/log/messages,操作不允許
新聞熱點
疑難解答