chattr 改變檔案屬性,預防 root 系統管理者更改或刪除

2017-06-03 CentOS, Ubuntu

想到之前被婊的經驗,所以特別寫上這篇。

 

Linux 裡面有一個內建的指令 chattr,這個指令其實蠻婊人的,chattr 是用來處理檔案屬性,和一般我們用 chmod、chown 的方式不同 (r、w、x)

 

chattr 常用屬性:

  • a:只能以附加的方式寫入(append only)。
  • c:自動壓縮(compressed),Linux 核心會自動把檔案的內容先壓縮後,再寫入硬碟,而在讀取但內容時,Linux 核心也會自動進行解壓縮。
  • d:在使用 dump 時,這種檔案會被排除(no dump)。
  • i:檔案不可以被更動(immutable),不可以寫入、刪除、建立連結檔等。
  • s:安全刪除檔案(secure deletion),當檔案被刪除時,系統會將所有硬碟上的檔案內容用 0 取代,確保檔案資料確實刪除。
  • A:不要更新檔案存取時間(no atime updates)。
  • C:關閉 copy-on-write(no copy on write)。
  • S:當檔案內容更動時,馬上同步寫入硬碟(synchronous updates)。

 

但其中 -i 這個參數能夠賦予檔案不可被更動的權限(immutable)

$ sudo chattr +i text.txt

 

透過 ls 是無法看到 chattr +i 的權限,必須用 lsattr 來查看:

$ sudo lsattr text.txt
----i--------e-- text.txt

會出現 i 這個屬性

 

當你用 root 打開 text.txt 的話都只有 read only 的權限

 

要再次解鎖只能用 chattr 把 i 屬性拿掉

$ sudo chattr -i text.txt

 

相同性質的還有 -a,或是加上 -R 讓整個目錄生效。

 

本質上 chattr 是一個不錯的工具,但當你的系統是多人管理的環境,而其中一人使用了這個 chattr +i 而未告知的話,其他管理者若沒有經驗就會處於使用 root 也沒有權限編輯的窘境

 

 

Ref:使用 chattr 指令設定檔案屬性,在 Linux 中預防檔案被更改或刪除

給 Mr. 沙先生一點建議

彙整

分類

展開全部 | 收合全部

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱