新聞中心
Linux系統(tǒng)中的文件除了具備一般權(quán)限和特殊權(quán)限之外,還有一種隱藏權(quán)限,即被隱藏起來的權(quán)限,默認(rèn)情況下不能直接被用戶發(fā)覺。有用戶曾經(jīng)在生產(chǎn)環(huán)境和RHCE考試題目中碰到過明明權(quán)限充足但卻無法刪除某個(gè)文件的情況,或者僅能在日志文件中追加內(nèi)容而不能修改或刪除內(nèi)容,這在一定程度上阻止了黑客篡改系統(tǒng)日志的圖謀,因此這種“奇怪”的文件也保障了Linux系統(tǒng)的安全性。

- chattr命令
chattr命令用于設(shè)置文件的隱藏權(quán)限,格式為“chattr [參數(shù)] 文件”。如果想要把某個(gè)隱藏功能添加到文件上,則需要在命令后面追加“+參數(shù)”,如果想要把某個(gè)隱藏功能移出文件,則需要追加“-參數(shù)”。chattr命令中可供選擇的隱藏權(quán)限參數(shù)非常豐富,具體如表5-6所示。
表5-6 chattr命令中用于隱藏權(quán)限的參數(shù)及其作用
| 參數(shù) | 作用 |
|---|---|
| i | 無法對(duì)文件進(jìn)行修改;若對(duì)目錄設(shè)置了該參數(shù),則僅能修改其中的子文件內(nèi)容而不能新建或刪除文件 |
| a | 僅允許補(bǔ)充(追加)內(nèi)容,無法覆蓋/刪除內(nèi)容(Append Only) |
| S | 文件內(nèi)容在變更后立即同步到硬盤(sync) |
| s | 徹底從硬盤中刪除,不可恢復(fù)(用0填充原文件所在硬盤區(qū)域) |
| A | 不再修改這個(gè)文件或目錄的最后訪問時(shí)間(atime) |
| b | 不再修改文件或目錄的存取時(shí)間 |
| D | 檢查壓縮文件中的錯(cuò)誤 |
| d | 使用dump命令備份時(shí)忽略本文件/目錄 |
| c | 默認(rèn)將文件或目錄進(jìn)行壓縮 |
| u | 當(dāng)刪除該文件后依然保留其在硬盤中的數(shù)據(jù),方便日后恢復(fù) |
| t | 讓文件系統(tǒng)支持尾部合并(tail-merging) |
| x | 可以直接訪問壓縮文件中的內(nèi)容 |
為了讓讀者能夠更好地見識(shí)隱藏權(quán)限的效果,我們先來創(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)。如果您沒有親眼見證過隱藏權(quán)限強(qiáng)大功能的美妙,就一定不會(huì)相信原來Linux系統(tǒng)會(huì)如此安全。接下來我們?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
可見,上述操作失敗了。
- lsattr命令
lsattr命令用于顯示文件的隱藏權(quán)限,格式為“l(fā)sattr [參數(shù)] 文件”。在Linux系統(tǒng)中,文件的隱藏權(quán)限必須使用lsattr命令來查看,平時(shí)使用的ls之類的命令則看不出端倪:
[root@linuxprobe ~]# ls -al linuxprobe
-rw-r--r--. 1 root root 9 Feb 12 11:42 linuxprobe
一旦使用lsattr命令后,文件上被賦予的隱藏權(quán)限馬上就會(huì)原形畢露。此時(shí)可以按照顯示的隱藏權(quán)限的類型(字母),使用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 分享名稱:創(chuàng)新互聯(lián)linux教程:5.4文件的隱藏屬性
網(wǎng)站URL:http://m.fisionsoft.com.cn/article/cdchssc.html


咨詢
建站咨詢
