chattr的做用就是修改ext3/ext2文件系統的權限,它只能被超級用戶使用,它的功能就是設置文件的隱藏屬性,隱藏屬性的設置對系統的安全性是有很大幫助的。
chattr的用法:
chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目錄
主要參數
-R:遞歸處理全部的文件及子目錄。
-V:詳細顯示修改內容,並打印輸出。
-:失效屬性。
+:激活屬性。
= :指定屬性。
A:Atime,告訴系統不要修改對這個文件的最後訪問時間。
S:Sync,一旦應用程序對這個文件執行了寫操做,使系統馬上把修改的結果寫到磁盤。
a:Append Only,系統只容許在這個文件以後追加數據,不容許任何進程覆蓋或截斷這個文件。若是目錄具備這個屬性,系統將只容許在這個目錄下創建和修改文件,而不容許刪除任何文件。
i:Immutable,系統不容許對這個文件進行任何的修改。若是目錄具備這個屬性,那麼任何的進程只能修改目錄之下的文件,不容許創建和刪除文件。
D:檢查壓縮文件中的錯誤。
d:No dump,在進行文件系統備份時,dump程序將忽略這個文件。
C:Compress,系統以透明的方式壓縮這個文件。從這個文件讀取時,返回的是解壓以後的數據;而向這個文件中寫入數據時,數據首先被壓縮以後才寫入磁盤。
s:Secure Delete,讓系統在刪除這個文件時,使用0填充文件所在的區域。
u:Undelete,當一個應用程序請求刪除這個文件,系統會保留其數據塊以便之後可以恢復刪除這個文件。
可是其中經常使用的的選項只有a和i兩個。
例如:# ls -l
-rw-r--r-- 1 root root 0 Mar 15 16:26 chattrtest
#chattr +i chattrtest
# rm chattrtest
rm: remove write-protected regular empty file `chattrtest'? y
rm: cannot remove `chattrtest': Operation not permitted
提示沒法刪除,並且是root也不能刪除。
只有解除設置以後才能刪除:#chattr -i chattrtest
當咱們設置了隱藏的屬性以後,怎樣才能查看呢?
使用lsattr命令:
#lsattr -a chattrtest
----i-------- chattrtest
lsattr的做用是顯示文件的隱藏屬性,用法是:lsattr [-aR] 文件或目錄
參數:-a 將隱藏文件的屬性頁顯示出來
-R連同子目錄的數據也一併列出來
這兩個命令在使用上要特別的當心,否則會形成很大的麻煩,例如將/etc/shadow密碼文件設置了i屬性,以後咱們想增長用戶,將會沒法增長進去,那麼咱們只要去處i屬性便可。