1. 程式人生 > >chattr和lsattr命令的使用(對於root使用者也無法修改刪除的操作問題)

chattr和lsattr命令的使用(對於root使用者也無法修改刪除的操作問題)

1、chattr命令的用法:chattr [+-=] [ASacdistu] File/Directory

引數說明:

+-= :分別為 [+ 增加] [- 減少] [= 設定] 屬性的意思

A  :當設定了 A 這個屬性時,這個檔案(或目錄)的存取時間atime (access) 將不可被修改, 可避免例如手提式計算機容易有磁碟 I/O 錯誤的情況發生!

S  :這個功能有點類似 sync 的功能!就是會將資料同步寫入磁碟當中!可以有效的避免資料流失!

a  :當設定 a 之後,這個檔案將只能增加資料,而不能刪除,只有 root 才能設定這個屬性。

c  :這個屬性設定之後,將會自動的將此檔案『壓縮』,在讀取的時候將會自動解壓縮出來,但是在儲存的時候,將會先進行壓縮之後再儲存(看來對於大檔案似乎蠻有用的!)

d  :當 dump (備份)程式被執行的時候,設定 d 屬性將可使該檔案(或目錄)具有 dump 功效!

i  :這個 i 可就很厲害了!他可以讓一個檔案『不能被刪除、改名、設定連結也無法寫入或新增資料!對於系統安全性有相當大的幫助!

j  :當使用 ext3 這個檔案系統格式時,設定 j 屬性將會使檔案在寫入時先記錄在 journal 中! 但是當 filesystem 設定引數為 data=journalled 時,由於已經設定了日誌了,所以這個屬性無效!

s  :當檔案設定了 s 引數時,他將會被完全的移除出這個硬碟空間。

u  :與 s 相反的,當使用 u 來設定檔案時,則資料內容其實還存在磁碟中,可以使用來 undeletion.

 

1.1、chattr示例Shell

chattr +i  /etc/shadow    #新增“i”隱藏屬性後,就無法更動這個檔案了

chattr -i  /etc/shadow      #解除"i"這個隱藏屬性

 

2、lsattr命令的用法:lsattr [-aR]

引數說明:

-a :將隱藏檔案的屬性也列出來;

-R :連同子目錄的資料也一併列出來!

 

2.2、lsattr示例Shell

chattr +i .bash_logout     #新增一個隱藏的“i”屬性,後面再細講

lsattr -a          #將當前目錄的檔案或目錄下的檔案所有屬性(包括隱藏屬性)列出 

-------------- ./. 

-------------- ./.. 

---i---------- ./.bash_logout 

-------------- ./.bash_profile 

-------------- ./.bashrc