chattr命令如何使用
chattr命令如何使用
chattr命令的作用很大,用chattr命令可以防止系統(tǒng)中某個(gè)關(guān)鍵文件被修改,那么chattr命令如何使用呢?下面學(xué)習(xí)啦小編就為大家?guī)?lái)了使用chattr命令的方法。
chattr命令使用方法
Linux內(nèi)核版本來(lái)支持的,不過(guò)現(xiàn)在生產(chǎn)絕大部分跑的linux系統(tǒng)都是2.6以上內(nèi)核了。通過(guò)chattr命令修改屬性能夠提高系統(tǒng)的安全性,但是它并不適合所有的目錄。chattr命令不能保護(hù)/、/dev、/tmp、/var目錄。lsattr命令是顯示chattr命令設(shè)置的文件屬性。
這兩個(gè)命令是用來(lái)查看和改變文件、目錄屬性的,與chmod這個(gè)命令相比,chmod只是改變文件的讀寫(xiě)、執(zhí)行權(quán)限,更底層的屬性控制是由chattr來(lái)改變的。
chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files…最關(guān)鍵的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]這些字符組合的,這部分是用來(lái)控制文件的屬性。
+ :在原有參數(shù)設(shè)定基礎(chǔ)上,追加參數(shù)。- :在原有參數(shù)設(shè)定基礎(chǔ)上,移除參數(shù)。= :更新為指定參數(shù)設(shè)定。A:文件或目錄的 atime (access time)不可被修改(modified), 可以有效預(yù)防例如手提電腦磁盤(pán)I/O錯(cuò)誤的發(fā)生。S:硬盤(pán)I/O同步選項(xiàng),功能類(lèi)似sync。a:即append,設(shè)定該參數(shù)后,只能向文件中添加數(shù)據(jù),而不能刪除,多用于服務(wù)器日志文件安全,只有root才能設(shè)定這個(gè)屬性。c:即compresse,設(shè)定文件是否經(jīng)壓縮后再存儲(chǔ)。讀取時(shí)需要經(jīng)過(guò)自動(dòng)解壓操作。d:即no dump,設(shè)定文件不能成為dump程序的備份目標(biāo)。i:設(shè)定文件不能被刪除、改名、設(shè)定鏈接關(guān)系,同時(shí)不能寫(xiě)入或新增內(nèi)容。i參數(shù)對(duì)于文件 系統(tǒng)的安全設(shè)置有很大幫助。j:即journal,設(shè)定此參數(shù)使得當(dāng)通過(guò)mount參數(shù):data=ordered 或者 data=writeback 掛 載的文件系統(tǒng),文件在寫(xiě)入時(shí)會(huì)先被記錄(在journal中)。如果filesystem被設(shè)定參數(shù)為 data=journal,則該參數(shù)自動(dòng)失效。s:保密性地刪除文件或目錄,即硬盤(pán)空間被全部收回。u:與s相反,當(dāng)設(shè)定為u時(shí),數(shù)據(jù)內(nèi)容其實(shí)還存在磁盤(pán)中,可以用于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.conf
2、讓某個(gè)文件只能往里面追加數(shù)據(jù),但不能刪除,適用于各種日志文件:# chattr +a /var/log/messages
chattr和lsattr命令
在一個(gè)技術(shù)群上看到這么一個(gè)問(wèn)題:
問(wèn)題出現(xiàn)在服務(wù)器被黑后!特意出記錄下問(wèn)題的解決方法。
由于被黑了,所以我們的很多命令將會(huì)出現(xiàn)使用不正常等問(wèn)題,而這些問(wèn)題大多是給人家添加或刪除了某些權(quán)限所致。比較常用的解決方法是直接cp一份正常的命令執(zhí)行應(yīng)用或重新安裝那個(gè)命令包,當(dāng)然如是出現(xiàn)上述的問(wèn)題,以下方法可能就會(huì)幫得了你:
使用lsattr命令查看文件的隱藏屬性,而用chattr來(lái)修改為正常值。以下的兩個(gè)命令的解釋和使用方法
lsattr
語(yǔ)法: #lsattr [-aR]
參數(shù)說(shuō)明:
-a?。簩㈦[藏文件的屬性也列出來(lái);
-R :連同子目錄的數(shù)據(jù)也一并列出來(lái)!
范例:
# chattr +i .bash_logout ——>添加一個(gè)隱藏的“i”屬性,后面再細(xì)講
#lsattr -a ——>將當(dāng)前目錄的文件或目錄下的文件所有屬性(包括隱藏屬性)列出
-------------- ./.
-------------- ./..
---i---------- ./.bash_logout
-------------- ./.bash_profile
-------------- ./.bashrc
chattr
語(yǔ)法:#chattr [+-=][ASacdistu] [檔案或目錄名稱(chēng)]
參數(shù)說(shuō)明:
+-=?。悍謩e為 [+ 增加] [- 減少] [= 設(shè)定] 屬性的意思
A :當(dāng)設(shè)定了 A 這個(gè)屬性時(shí),這個(gè)檔案(或目錄)的存取時(shí)間
atime (access) 將不可被修改, 可避免例如手提式計(jì)算機(jī)容易有磁盤(pán) I/O 錯(cuò)誤的情況發(fā)生!
S ?。哼@個(gè)功能有點(diǎn)類(lèi)似 sync 的功能!就是會(huì)將數(shù)據(jù)同步寫(xiě)入磁盤(pán)當(dāng)中!可以有效的避免數(shù)據(jù)流失!
a ?。寒?dāng)設(shè)定 a 之后,這個(gè)檔案將只能增加數(shù)據(jù),而不能刪除,只有 root 才能設(shè)定這個(gè)屬性。
c :這個(gè)屬性設(shè)定之后,將會(huì)自動(dòng)的將此檔案『壓縮』,在讀取的時(shí)候?qū)?huì)自動(dòng)解壓縮出來(lái),但是在儲(chǔ)存的時(shí)候,將會(huì)先進(jìn)行壓縮之后再儲(chǔ)存(看來(lái)對(duì)于大檔案似乎蠻有用的!)
d :當(dāng) dump (備份)程序被執(zhí)行的時(shí)候,設(shè)定 d 屬性將可使該檔案(或目錄)具有 dump 功效!
i ?。哼@個(gè) i 可就很厲害了!他可以讓一個(gè)檔案『不能被刪除、改名、設(shè)定連結(jié)也無(wú)法寫(xiě)入或新增數(shù)據(jù)!對(duì)于系統(tǒng)安全性有相當(dāng)大的幫助!
j ?。寒?dāng)使用 ext3 這個(gè)檔案系統(tǒng)格式時(shí),設(shè)定 j 屬性將會(huì)使檔案在寫(xiě)入時(shí)先記錄在 journal 中! 但是當(dāng) filesystem 設(shè)定參數(shù)為 data=journalled 時(shí),由于已經(jīng)設(shè)定了日志了,所以這個(gè)屬性無(wú)效!
s ?。寒?dāng)檔案設(shè)定了 s 參數(shù)時(shí),他將會(huì)被完全的移除出這個(gè)硬盤(pán)空間。
u :與 s 相反的,當(dāng)使用 u 來(lái)設(shè)定檔案時(shí),則數(shù)據(jù)內(nèi)容其實(shí)還存在磁盤(pán)中,可以使用來(lái) undeletion.
范例:
#chattr +i /etc/shadow ——>添加“i”隱藏屬性后,就無(wú)法更動(dòng)這個(gè)文件了
#chattr -i /etc/shadow ——>解除"i"這個(gè)隱藏屬性
補(bǔ)充說(shuō)明:
本命令是重要的,尤其是在系統(tǒng)的安全性上面。由于這些屬性是隱藏的性質(zhì),所以需要以 lsattr才能看到該屬性。其中,最為重要的是屬 +i 這個(gè)屬性了,因?yàn)樗梢宰屢粋€(gè)檔案無(wú)法被更動(dòng),對(duì)于需要強(qiáng)烈的系統(tǒng)安全的人來(lái)說(shuō),真是相當(dāng)?shù)闹匾?里頭還有相當(dāng)多的屬性是需要 root 才能設(shè)定的!此外,如果是 log file 這種的登錄檔,就更需要 +a 這個(gè)可以增加,但不會(huì)被殺掉的參數(shù)了。
看過(guò)“chattr命令如何使用”的人還看了:
5.mv命令怎么用