在伺服器的系統裡有很多關鍵的檔案是不允許修改,以防止其他使用者或者入侵者修改關鍵的檔案,但是在實際生産環境中往往很多管理人員都沒有注意這一點,這導緻系統檔案有會被改的可能性,如此就需要我們平時的對關鍵的檔案加鎖管理了,在系統中要加鎖的關鍵檔案,當然還有重要的不能被修改的檔案也要加鎖
[root@test test]# chattr +i /etc/passwd#使用者關鍵資訊檔案
[root@test test]# chattr +i /etc/shadow#使用者影子檔案,存放使用者的密文密碼
[root@test test]# chattr +i /etc/gshadow#組影子檔案
[root@test test]# chattr +i /etc/group#組檔案
[root@test test]# chattr +i /etc/services#系統預設端口檔案
加鎖後連root使用者都是無法對檔案删除和修改的,其中chattr的使用參數和模式如下:
這項指令可改變存放在ext2檔案系統上的檔案或目錄屬性,這些屬性共有以下8種模式:
a:讓檔案或目錄僅供附加用途。
b:不更新檔案或目錄的最後存取時間。
c:将檔案或目錄壓縮後存放。
d:将檔案或目錄排除在傾倒操作之外。
i:不得任意更動檔案或目錄。
s:保密性删除檔案或目錄。
S:即時更新檔案或目錄。
u:預防以外删除。
參數:
-R 遞歸處理,将指定目錄下的所有檔案及子目錄一并處理。
-v<版本編号> 設定檔案或目錄版本。
-V 顯示指令執行過程。
+<屬性> 開啟檔案或目錄的該項屬性。
-<屬性> 關閉檔案或目錄的該項屬性。
=<屬性> 指定檔案或目錄的該項屬性。
但是如果有時要添加新使用者的時候怎麼辦,或者有些明明有權限的檔案不能被修改是為什麼
[root@test test]# useradd test1
useradd:無法打開密碼檔案
我們可以看下用lsattr看下/etc/passwd檔案的隐藏屬性,像這樣的都是被加鎖過的檔案
[root@test test]# lsattr /etc/passwd
----i-------- /etc/passwd
-a 顯示所有檔案和目錄,包括以"."為名稱開頭字元的額外内建,現行目錄"."與上層目錄".."。
-d 顯示,目錄名稱,而非其内容。
-l 此參數目前沒有任何作用。
-R 遞歸處理,将指定目錄下的所有檔案及子目錄一并處理。
-v 顯示檔案或目錄版本。
-V 顯示版本資訊。
[root@test test]# chattr -i /etc/passwd