通過chattr命令修改屬性能夠提高系統(tǒng)的安全性,但是它并不適合所有的目錄。chattr命令不能保護(hù)/、/dev、/tmp、/var目錄。lsattr命令是顯示chattr命令設(shè)置的文件屬性。
這兩個(gè)命令是用來查看和改變文件、目錄屬性的,與chmod這個(gè)命令相比,chmod只是改變文件的讀寫、執(zhí)行權(quán)限,更底層的屬性控制是由chattr來改變的。
chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files… 最關(guān)鍵的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]這些字符組合的,這部分是用來控制文件的 屬性。
A: 文件或目錄的 atime (access time)不可被修改(modified), 可以有效預(yù)防例如手提電腦磁盤I/O錯(cuò)誤的發(fā)生。 S: 硬盤I/O同步選項(xiàng),功能類似sync。 a: 即append,設(shè)定該參數(shù)后,只能向文件中添加數(shù)據(jù),而不能刪除,多用于服務(wù)器日志文件安全,只有root才能設(shè)定這個(gè)屬性。 c: 即comPResse,設(shè)定文件是否經(jīng)壓縮后再存儲(chǔ)。讀取時(shí)需要經(jīng)過自動(dòng)解壓操作。 d:即no dump,設(shè)定文件不能成為dump程序的備份目標(biāo)。 i:設(shè)定文件不能被刪除、改名、設(shè)定鏈接關(guān)系,同時(shí)不能寫入或新增內(nèi)容。i參數(shù)對(duì)于文件系統(tǒng)的安全設(shè)置有很大幫助。 j:即journal,設(shè)定此參數(shù)使得當(dāng)通過mount參數(shù):data=ordered 或者 data=writeback 掛 載的文件系統(tǒng),文件在寫入時(shí)會(huì)先被記錄(在journal中)。如果filesystem被設(shè)定參數(shù)為data=journal,則該參數(shù)自動(dòng)失效。 s:保密性地刪除文件或目錄,即硬盤空間被全部收回。 u:與s相反,當(dāng)設(shè)定為u時(shí),數(shù)據(jù)內(nèi)容其實(shí)還存在磁盤中,可以用于undeletion。 各參數(shù)選項(xiàng)中常用到的是a和i。a選項(xiàng)強(qiáng)制只可添加不可刪除,多用于日志系統(tǒng)的安全設(shè)定。而i是更為嚴(yán)格的安全設(shè)定,只有superuser (root) 或具有CAP_linux_IMMUTABLE處理能力(標(biāo)識(shí))的進(jìn)程能夠施加該選項(xiàng)。
應(yīng)用舉例:
1、用chattr命令防止系統(tǒng)中某個(gè)關(guān)鍵文件被修改:
# chattr +i /etc/resolv.conf然后用mv /etc/resolv.conf等命令操作于該文件,都是得到Operation not permitted 的結(jié)果。vim編輯該文件時(shí)會(huì)提示W(wǎng)10: Warning: Changing a readonly file錯(cuò)誤。要想修改此文件就要把i屬性去掉: chattr -i /etc/resolv.conf
# lsattr /etc/resolv.conf會(huì)顯示如下屬性----i-------- /etc/resolv.conf2、讓某個(gè)文件只能往里面追加數(shù)據(jù),但不能刪除,適用于各種日志文件:
# chattr +a /var/log/messages參考: http://www.ha97.com/5172.html
新聞熱點(diǎn)
疑難解答
圖片精選