我們知道linux是一個多用戶操作系統,用戶可以刪除另一個用戶非常關心的文件,比如管理員。為了避免這種情況,linux提供了“ chattr ”命令。下面我們就來具體介紹一下chattr命令,讓大家簡單了解一下chattr命令的使用方法。
Linux中的chattr命令是什么?
Linux中的chattr命令是一個文件系統命令,用于更改目錄中文件的屬性。此命令的主要用途是使超級用戶以外的用戶無法更改多個文件。
簡單來說,’chattr’命令可以使文件不可變,不可刪除,只可附加等等!
chattr的語法
#chattr?[operator]?[flags]?[filename]
chattr命令的flags字符串開頭,必須出現以下運算符中的一個:
1、’ + ‘:將選定的屬性添加到文件的現有屬性中。
2、’ – ‘:刪除選定的屬性。
3、’ = ‘:使所選屬性成為文件所具有的唯一屬性。
以下是可以使用chattr命令設置或取消設置的常用屬性和關聯標志(flags字符串)的列表:
A:atime記錄未更新。
S:更改在磁盤上同步更新。
a:文件只能在追加模式下打開才能寫入。
i:文件無法修改(不可變),唯一的超級用戶可以取消設置屬性。
j:在更新到文件本身之前,所有文件信息都更新到ext3日志。
t:不允許尾部合并。
d:運行轉儲進程時不再有備份候選者。
u:刪除這樣的文件時,會保存其數據,使用戶可以詢問其取消刪除。
但是,上述所有命令都不符合文件的條件,并且可以在目錄(文件夾)上使用,以保護目錄不被刪除或任何其他類似的事故。但是,在保護目錄時,建議使用標志-R’以遞歸保護指定目錄中的所有內容。
以下是chattr命令的不同選項:
-R:用于遞歸顯示目錄及其內容的列表屬性。
-V:它將顯示程序的版本。
-a:用于列出目錄的所有文件,其中還包括名稱以句點(’。’)開頭的目錄。
-d:此選項將目錄列為常規文件,而不是列出其內容。
-v:用于顯示文件的版本/世代號等。
如何使用Chattr命令?
1、在文件上添加屬性
創建一個新文件來測試它。例如,使用touch命令創建了一個新文件tecadmin.txt,并在文件中分配了777權限。
#?touch?tecadmin.txt #?chmod?777?tecadmin.txt #?ls?-l?tecadmin.txt -rwxrwxrwx?1?root?root?0?Apr?10?13:10?tecadmin.txt
現在啟用i文件屬性
#?chattr?+i?tecadmin.txt
由于我們已啟用i文件屬性,讓我們嘗試刪除此文件,就會收到以下rm提示的錯誤,即使文件具有777權限。
#?rm?-f?tecadmin.txt rm:?cannot?remove?`tecadmin.txt':?Operation?not?permitted
2、刪除文件的屬性
要清除文件的屬性,只需使用附加屬性的( – )符號。例如在tecadmin.txt中。
#?chattr?-i?tecadmin.txt #?lsattr?tecadmin.txt -------------?tecadmin.txt
3、保護目錄
標志+ i’可用于目錄(如下所示)以使目錄不可變;使用了標志-R’,使得調用是遞歸的,這樣所有子文件和目錄也是不可變的。這樣就可以保護整個目錄及其文件。例:folder文件夾
#chattr?-R?+?i??folder/
現在刪除/刪除文件夾及其文件,就會收到以下rm提示的錯誤
#rm?-rf?folder?/? rm:?cannot?remove?‘?folder/’?:?Operation?not?permitted
再次使用’-R’開關,’ – i’標志和用于取消設置權限的文件夾的完整路徑。
#?chattr?-R?-i?folder/ #?rm?-rf?folder/
這樣就成功刪除了folder目錄。