- Linux就該這么學
- 劉遄
- 707字
- 2019-01-05 05:54:07
5.4 文件的隱藏屬性
Linux系統中的文件除了具備一般權限和特殊權限之外,還有一種隱藏權限,即被隱藏起來的權限,默認情況下不能直接被用戶發覺。有用戶曾經在生產環境和RHCE考試題目中碰到過明明權限充足但卻無法刪除某個文件的情況,或者僅能在日志文件中追加內容而不能修改或刪除內容,這在一定程度上阻止了黑客篡改系統日志的圖謀,因此這種“奇怪”的文件也保障了Linux系統的安全性。
5.4.1 chattr命令
chattr命令用于設置文件的隱藏權限,格式為“chattr [參數]文件”。如果想要把某個隱藏功能添加到文件上,則需要在命令后面追加“+參數”,如果想要把某個隱藏功能移出文件,則需要追加“-參數”。chattr命令中可供選擇的隱藏權限參數非常豐富,具體如表5-6所示。
表5-6 chattr命令中用于隱藏權限的參數及其作用

為了讓讀者能夠更好地見識隱藏權限的效果,我們先來創建一個普通文件,然后立即嘗試刪除(這個操作肯定會成功):
[root@linuxprobe ~]# echo "for Test" > linuxprobe [root@linuxprobe ~]# rm linuxprobe rm: remove regular file ‘linuxprobe'? y
實踐是檢驗真理的唯一標準。如果您沒有親眼見證過隱藏權限強大功能的美妙,就一定不會相信原來Linux系統會如此安全。接下來我們再次新建一個普通文件,并為其設置不允許刪除與覆蓋(+a參數)權限,然后再嘗試將這個文件刪除:
[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
可見,上述操作失敗了。
5.4.2 lsattr命令
lsattr命令用于顯示文件的隱藏權限,格式為“lsattr [參數]文件”。在Linux系統中,文件的隱藏權限必須使用lsattr命令來查看,平時使用的ls之類的命令則看不出端倪:
[root@linuxprobe ~]# ls -al linuxprobe -rw-r--r--. 1 root root 9 Feb 12 11:42 linuxprobe
一旦使用lsattr命令后,文件上被賦予的隱藏權限馬上就會原形畢露。此時可以按照顯示的隱藏權限的類型(字母),使用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
推薦閱讀
- 操作系統實用教程(Linux版)
- Learning OpenDaylight
- Linux網絡管理與配置(第2版)
- 每天5分鐘玩轉Kubernetes
- 網絡操作系統:Windows Server 2003管理與應用
- 嵌入式Linux系統開發:基于Yocto Project
- 玩到極致 iPhone 4S完全攻略
- PLC控制系統應用與維護
- Linux內核觀測技術BPF
- AWS Development Essentials
- Social Data Visualization with HTML5 and JavaScript
- 精解Windows 10
- 從實踐中學習Windows滲透測試
- Linux內核API完全參考手冊(第2版)
- Linux從入門到精通(視頻教學版)