Linux中文件隱藏屬性chattr,lsattr

隱藏文件的屬性對於文件系統的有很大的幫助,尤其是在系統安全上面,很關鍵。不過強調的是,下面的chattr命令只能在Ext2/Ext3的文件系統上面生效,其他系統可能無法支持這個命令,下面討論怎麼設置與檢查這些隱藏屬性。

[root@www ~]# chattr [+-=] [ASacdistu]   文件或目錄名稱
參數:
+     	:增加某一個特殊參數,其他原本存在的參數則不動。
-	:刪除某一個特定參數,其他原本存在的參數則不動。
=	:僅有後面接的參數。
A	:當設置了A這個屬性時,若你有訪問此文件(或目錄)時,他訪問時間atime將不會被修改,可避免I/O較慢的機器過度訪問磁盤。這對速度較慢的計算機有幫助。
S	:一般文件是異步寫入磁盤的,如果加上S這個屬性時,當你進入任何文件修改,改動會同步寫入磁盤。
a	:當設置a之後,這個文件將只能增加數據,而不能刪除也不能修改數據,只有root才能設置這個屬性。
c	:這個屬性設置後,將自動將此文件壓縮,在讀取的時候將會自動解壓縮,但是在存儲的時候,將會先進行壓縮後再存儲(對於大文件還是挺有用的)。
d	:當dump程序被執行的時候,設置d屬性將可以使該文件或者目錄不會被dump備份。
i	:這個i可就厲害了。它可以讓一個文件不能被刪除、改名、設置連接也無法寫入或添加數據。對與系統安全性有相當大的幫助。只要有root權限。
s	:當設置了s屬性時,如果這個文件被刪除,它將會完全從這個硬盤空間中刪除。
u	:與s相反,當使用u來配置文件時,如果該文件被刪除了,則數據內容其實還存在磁盤中,可以使用來找回該文件。
注意:屬性設置常見的是a與i的設置值,而且很多設置值必須要身爲root才能設置。
例:
[root@www ~]#cd /tmp
[root@www tmp]#touch attrtest
[root@www tmp]#chattr +i attrtest
[root@www tmp]#rm attrtest
rm: remove write-protected regular empty file 'attrtest;?y
rm: cannt remove 'attrtest':Operation not permitted <==操作不許可
#看到了嗎?連root也沒有辦法將這個文件刪除呢!趕緊解除設置!
範例:請將該文件的i屬性取消
[root@www tmp]#chattr -i attrtest
這個命令是很重要的,尤其是在系統的數據安全上面!由於這些屬性都是隱藏的性質,所以需要以lsattr才能看到該屬性。其中,個人認爲最重要的當屬+i與+a這個屬性了。+i可以讓一個文件無法被改動,對與需要強烈的系統安全的人來說,真是相當重要的。裏頭還有相當多的屬性需要root才能設置。

此外,如果是log file這種的登錄文件就更需要+a這個可以增加但是不能修改舊有的數據與刪除的參數了。

lsttr  [顯示文件隱藏屬性]

參數:

-a :將隱藏文件的屬性也秀出來;

-d :如果接的是目錄,僅列出目錄本身的屬性而非目錄內的文件名

-R :連同子目錄的數據一併列出來!

使用chattr 設置後,可以利用lsattr來查看隱藏的屬性。不過,這兩個命令在使用上必須要特別小心,否則會造成很大的困擾。例如:某天心情好,突然將/etc/shadoe這個重要的密碼記錄文件設置成爲具有i的屬性,那麼過了若干天后,你突然要新增一個用戶,卻一直無法添加,趕快將i的屬性去掉。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章