我們知道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目錄。
以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。
以上是Linux中的chattr指令是什麼?如何使用(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!