W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Linux系統(tǒng)中的文件除了具備一般權(quán)限和特殊權(quán)限之外,還有一種隱藏權(quán)限,即被隱藏起來(lái)的權(quán)限,默認(rèn)情況下不能直接被用戶發(fā)覺(jué)。有用戶曾經(jīng)在生產(chǎn)環(huán)境和RHCE考試題目中碰到過(guò)明明權(quán)限充足但卻無(wú)法刪除某個(gè)文件的情況,或者僅能在日志文件中追加內(nèi)容而不能修改或刪除內(nèi)容,這在一定程度上阻止了黑客篡改系統(tǒng)日志的圖謀,因此這種“奇怪”的文件也保障了Linux系統(tǒng)的安全性。
chattr命令用于設(shè)置文件的隱藏權(quán)限,格式為“chattr [參數(shù)] 文件”。如果想要把某個(gè)隱藏功能添加到文件上,則需要在命令后面追加“+參數(shù)”,如果想要把某個(gè)隱藏功能移出文件,則需要追加“-參數(shù)”。chattr命令中可供選擇的隱藏權(quán)限參數(shù)非常豐富,具體如表5-6所示。
表5-6 chattr命令中用于隱藏權(quán)限的參數(shù)及其作用
參數(shù) | 作用 |
---|---|
i | 無(wú)法對(duì)文件進(jìn)行修改;若對(duì)目錄設(shè)置了該參數(shù),則僅能修改其中的子文件內(nèi)容而不能新建或刪除文件 |
a | 僅允許補(bǔ)充(追加)內(nèi)容,無(wú)法覆蓋/刪除內(nèi)容(Append Only) |
S | 文件內(nèi)容在變更后立即同步到硬盤(pán)(sync) |
s | 徹底從硬盤(pán)中刪除,不可恢復(fù)(用0填充原文件所在硬盤(pán)區(qū)域) |
A | 不再修改這個(gè)文件或目錄的最后訪問(wèn)時(shí)間(atime) |
b | 不再修改文件或目錄的存取時(shí)間 |
D | 檢查壓縮文件中的錯(cuò)誤 |
d | 使用dump命令備份時(shí)忽略本文件/目錄 |
c | 默認(rèn)將文件或目錄進(jìn)行壓縮 |
u | 當(dāng)刪除該文件后依然保留其在硬盤(pán)中的數(shù)據(jù),方便日后恢復(fù) |
t | 讓文件系統(tǒng)支持尾部合并(tail-merging) |
x | 可以直接訪問(wèn)壓縮文件中的內(nèi)容 |
為了讓讀者能夠更好地見(jiàn)識(shí)隱藏權(quán)限的效果,我們先來(lái)創(chuàng)建一個(gè)普通文件,然后立即嘗試刪除(這個(gè)操作肯定會(huì)成功):
[root@linuxprobe ~]# echo "for Test" > linuxprobe
[root@linuxprobe ~]# rm linuxprobe
rm: remove regular file ‘linuxprobe’? y
實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。如果您沒(méi)有親眼見(jiàn)證過(guò)隱藏權(quán)限強(qiáng)大功能的美妙,就一定不會(huì)相信原來(lái)Linux系統(tǒng)會(huì)如此安全。接下來(lái)我們?cè)俅涡陆ㄒ粋€(gè)普通文件,并為其設(shè)置不允許刪除與覆蓋(+a參數(shù))權(quán)限,然后再嘗試將這個(gè)文件刪除:
[root@linuxprobe ~]# echo "for Test" > linuxprobe
[root@linuxprobe ~]# chattr +a linuxprobe
[root@linuxprobe ~]# rm linuxprobe
rm: remove regular file ‘linuxprobe’? y
rm: cannot remove ‘linuxprobe’: Operation not permitted
可見(jiàn),上述操作失敗了。
lsattr命令用于顯示文件的隱藏權(quán)限,格式為“l(fā)sattr [參數(shù)] 文件”。在Linux系統(tǒng)中,文件的隱藏權(quán)限必須使用lsattr命令來(lái)查看,平時(shí)使用的ls之類(lèi)的命令則看不出端倪:
[root@linuxprobe ~]# ls -al linuxprobe
-rw-r--r--. 1 root root 9 Feb 12 11:42 linuxprobe
一旦使用lsattr命令后,文件上被賦予的隱藏權(quán)限馬上就會(huì)原形畢露。此時(shí)可以按照顯示的隱藏權(quán)限的類(lèi)型(字母),使用chattr命令將其去掉:
[root@linuxprobe ~]# lsattr linuxprobe
-----a---------- linuxprobe
[root@linuxprobe ~]# chattr -a linuxprobe
[root@linuxprobe ~]# lsattr linuxprobe
---------------- linuxprobe
[root@linuxprobe ~]# rm linuxprobe
rm: remove regular file ‘linuxprobe’? y
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: