首頁 >運維 >linux運維 >Linux中的chattr指令是什麼?如何使用(程式碼範例)

Linux中的chattr指令是什麼?如何使用(程式碼範例)

青灯夜游
青灯夜游原創
2019-01-02 13:56:344111瀏覽

我們知道Linux是一個多用戶作業系統,用戶可以刪除另一個用戶非常關心的文件,例如管理員。為了避免這種情況,Linux提供了「 chattr 」指令。下面我們就來具體介紹一下chattr指令,讓大家簡單了解一下chattr指令的使用方法。

Linux中的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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:GNU是什麼意思下一篇:GNU是什麼意思

相關文章

看更多