Centos7系統如何使用chattr命令追加文件隱藏屬性
Centos7系統如何使用chattr命令追加文件隱藏屬性?本教程以Centos7系統為例
本配置適(shi)用于(yu)Centos6,7版本
1.chattr命令的用法:
chattr [ -RVf ] [ -v version ] [ mode ] files…
最關鍵的(de)是在[mode]部(bu)分(fen),[mode]部(bu)分(fen)是由 -=和(he)[ASacDdIijsTtu]這些字符(fu)組合的(de),這部(bu)分(fen)是用來控(kong)制文件的(de)
屬性。
:在原有參數(shu)設定基礎(chu)上(shang),追加參數(shu)。
- :在原有參(can)數(shu)設(she)定基礎上,移(yi)除參(can)數(shu)。
= :更(geng)新為指定參數設定。
A:文件或目錄(lu)的 atime (access time)不可被(bei)修改(modified), 可以(yi)有效(xiao)預防例如(ru)手提電腦磁盤I/O錯(cuo)誤的發生。
S:硬盤(pan)I/O同步選項,功能類似sync。
a:即append,設(she)定該(gai)參(can)數后(hou),只能(neng)(neng)向文件(jian)(jian)中添加數據,而不能(neng)(neng)刪(shan)除(chu),多用于服(fu)務器日志文件(jian)(jian)安全,只有root才能(neng)(neng)設(she)定這個(ge)屬性。
c:即compresse,設定(ding)文件是否(fou)經壓(ya)縮后(hou)再存儲。讀取時需要經過自動解(jie)壓(ya)操作。
d:即no dump,設定文(wen)件不能成為dump程序的備份(fen)目標(biao)。
i:設定文(wen)件不能被刪除(chu)、改名、設定鏈接(jie)關系(xi)(xi),同時不能寫入或新增內(nei)容。i參(can)數對(dui)于文(wen)件 系(xi)(xi)統的安全設置有很大幫助。
j:即(ji)journal,設(she)定此參(can)數使(shi)得當(dang)通過mount參(can)數:data=ordered 或者 data=writeback 掛 載的文件(jian)系統,文件(jian)在寫入(ru)時(shi)會先(xian)被記錄(lu)(在journal中)。如果filesystem被設(she)定參(can)數為 data=journal,則該參(can)數自動失(shi)效。
s:保密性地刪除文件或目錄,即硬(ying)盤(pan)空間被全部收回。
u:與s相反,當設(she)定為u時(shi),數據內容其實(shi)還存在(zai)磁盤(pan)中,可以用于undeletion。
各(ge)參數選項中(zhong)常用到的是a和i。a選項強制只(zhi)可添加不(bu)可刪除,多用于日志系統(tong)的安全設定(ding)。而i是更為嚴格的安全設定(ding),只(zhi)有superuser (root) 或(huo)具有CAP_LINUX_IMMUTABLE處理能力(標識)的進程能夠(gou)施(shi)加該選項。
2.應用舉例:
用(yong)chattr命令防止系統中某個(ge)關鍵文件被(bei)修改:
# chattr i /etc/resolv.conf
然后用mv /etc/resolv.conf等命令操作于(yu)該文件(jian)(jian),都是(shi)得到Operation not permitted 的(de)結果。vim編輯該文件(jian)(jian)時會(hui)提示(shi)W10: Warning: Changing a readonly file錯(cuo)誤(wu)。要想修改此文件(jian)(jian)就要把i屬(shu)性去掉: chattr -i /etc/resolv.conf

# lsattr /etc/resolv.conf
會顯示如下屬性
----i-------- /etc/resolv.conf
讓某個文(wen)件只能往里面追加數據(ju),但不能刪除(chu),適用于各種(zhong)日志文(wen)件:
# chattr a /var/log/messages


