一些文件看上去可能一切正常,但當您嘗試刪除的時候,居然也會報錯,就象下邊一樣:
[root@linux236 root]# ls -l 1.txt
-rw-r——r—— 1 root root 0 Aug 5 23:00 1.txt
[root@linux236 root]# rm -rf 1.txt
rm: cannot unlink `1.txt': Operation not permitted
您是全能root用戶,居然系統告訴您操作不允許,是Linux瘋了麼?當然不是,如果您會用lsattr命令,問題就有了答案。
[root@linux236 root]# lsattr
——i—— ./1.txt
-------------- ./weiqi.ldif
-------------- ./qi.schema
秘密終於暴露了,在lsattr命令下,這個1.txt文件帶有一個"i"的屬性,所以才不可以刪除。您現在可以用下邊的一系列命令:
[root@linux236 root]# lsattr 1.txt
——i—— 1.txt
[root@linux236 root]# chattr -i 1.txt
[root@linux236 root]# rm -rf 1.txt
[root@linux236 root]#
成功了,這個屬性專門用來保護重要的文件不被刪除,通常的情況下,懂得用這幾個命令的通常系統管理員有能力判斷這個文件是否可以被刪除。如果您想給一個文件多加點保護,可以使用下邊的命令:
chattr +i filename
命令,這樣一來,想要刪除這個文件就要多一個步驟。同時,這樣的文件也是不可以編輯和修改的。只有root用戶才能使用chattr命令。此命令可以在Linux ext2或ext3系統上使用。
類似於和Windows文件系統,不能隨意刪除的文件多半都有其道理,即使您知道如何刪除,都應該三思而後行。
freebsd chflags
用法:chflags [參數] 關鍵詞 檔案
常用關鍵詞:
schg 檔案完全無法被修改(super-user only)。noschg(Anti)
sappend 檔案內容只能用附加(append)的方式修改(super-user only)。nosappend(Anti)
sunlink 檔案無法被刪除或者重命名(super-user only)。nosunlink(Anti)
uchg 檔案完全無法被修改(super-user only 或者一般使用者)。nouchg(Anti)
uappend 檔案內容只能用附加(append)的方式修改(super-user only 或者一般使用者)。uappend(Anti)
uunlink 檔案無法被刪除或者重命名(super-user only 或者一般使用者)。nouunlink(Anti)
uchg 用於文件時,owner 不能修改文件,也不能刪除文件或者對文件重命名;nouchg(Anti)
uappend 用於文件時,owner 只能以 append 的方式修改文件,不能刪除文件或者對文件重命名;uunlink 用於文件時,owner 可以對文件進行修改,但不能刪除文件或者對文件重命名。nouappend(Anti)
uchg 用於目錄時,owner 不能刪除目錄或者重命名目錄,可以修改目錄中已有的文件,但不能在目錄中添加文件,也不能刪除目錄中的文件或者對其重命名;uappend 用於目錄時,owner 不能刪除目錄或者重命名目錄,可以修改目錄中已有的文件和在目錄中添加文件,不能刪除目錄中的文件或者對其重命名;uunlink 用於目錄時,owner 不能刪除目錄或者重命名目錄,可以修改目錄中已有的文件和在目錄中添加文件,也可以刪除目錄中的文件或者對其重命名。
結論:uchg>uappend>uunlink