chattr 與 lsattr 命令詳解

PS:有時候你發現用root權限都不能修改某個文件,大部分緣由是曾經用chattr命令鎖定該文件了。
chattr命令的做用很大,其中一些功能是由Linux內核版原本支持的,不過如今生產絕大部分跑的linux系統都是2.6以上內核了。
經過chattr命令修改屬性可以提升系統的安全性,可是它並不適合全部的目錄。chattr命令不能保護 /、/dev、/tmp、/var目錄。 lsattr命令是顯示chattr命令設置的文件屬性。這兩個命令是用來查看和改變文件、目錄屬性的,
與chmod這個命令相比,chmod只是改變文件的讀寫、執行權限,更底層的屬性控制是由chattr來改變的。 chattr命令的用法:
chattr [ -RVf ] [ -v version ] [ mode ] files… 最關鍵的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]這些字符組合的,這部分是用來控制文件的屬性。 + :在原有參數設定基礎上,追加參數。 - :在原有參數設定基礎上,移除參數。 = :更新爲指定參數設定。 A:文件或目錄的 atime (access time)不可被修改(modified), 能夠有效預防例如手提電腦磁盤I/O錯誤的發生。 S:硬盤I/O同步選項,功能相似sync。 a:即 append,設定該參數後,只能向文件中添加數據,而不能刪除,多用於服務器日誌文件安全,只有root才能設定這個屬性。 c:即 compresse,設定文件是否經壓縮後再存儲。讀取時須要通過自動解壓操做。 d:即 no dump,設定文件不能成爲dump程序的備份目標。 i:設定文件不能被刪除、更名、設定連接關係,同時不能寫入或新增內容。i參數對於文件 系統的安全設置有很大幫助。 j:即 journal,設定此參數使得當經過mount參數:data=ordered 或者 data=writeback 掛載的文件系統,
  文件在寫入時會先被記錄(在journal中)。若是filesystem被設定參數爲 data=journal,則該參數自動失效。 s:保密性地刪除文件或目錄,即硬盤空間被所有收回。 u:與s相反,當設定爲u時,數據內容其實還存在磁盤中,能夠用於 undeletion。 各參數選項中經常使用到的是a和i、a選項強制只可添加不可刪除,多用於日誌系統的安全設定。而i是更爲嚴格的安全設定,
只有superuser (root) 或具備 CAP_LINUX_IMMUTABLE 處理能力(標識)的進程可以施加該選項。 應用舉例:
1、用chattr命令防止系統中某個關鍵文件被修改: # chattr +i /etc/resolv.conf 而後用 mv /etc/resolv.conf 等命令操做於該文件,都是獲得 Operation not permitted 的結果。
編輯該文件時會提示 W10: Warning: Changing a readonly file 錯誤。要想修改此文件就要把i屬性去掉: chattr -i /etc/resolv.conf # lsattr /etc/resolv.conf 會顯示以下屬性 ----i-------- /etc/resolv.conf # chattr -i /etc/resolv.conf    去除寫保護 2、讓某個文件只能往裏面追加數據,但不能刪除,適用於各類日誌文件: # chattr +a /var/log/messages
相關文章
相關標籤/搜索