chattr +i /sec/Classified
使文件不能被修改與刪除,對passwd、shadow、group、gshadow等重要文件可設置該屬性,-i移除屬性。
chattr +a /sec/Classified
使文件不能被修改與刪除,但可以追加內容,對重要的日志文件可以設置該屬性,-a移除屬性。
lsattr /sec/Classified #顯示隱藏屬性
chattr +a 示例
1、SBIT(Sticky Bit):只對目錄有效,一個目錄如果有SBIT權限,那么該目錄下的文件,只有該文件的擁有者和root才能刪除,如/tmp目錄,它的權限是:
tmp目錄權限
t出現在了其他人的x權限位置,表示該目錄有SBIT權限。該目錄其他人具有rw權限,理論上該目錄下的文件任何人都可以刪除。但由于SBIT權限的存在,所以該目錄的文件只有擁有者和root才能刪除或移動。以tmp目錄下的file1文件為例:
file1文件權限
file1文件的擁有者是sindy,那么該文件只能被root和sindy這兩個用戶刪除。
參考命令:
chmod o+t /share #為share目錄賦于SBIT權限,在該目錄下用戶只能刪除自己創建的文件
chmod o-t /share #取消SBIT權限
2、SUID(Set UID):只對二進制文件有效,一個文件如果有SUID權限,那么其他人在執行該文件時,可以臨時獲取到該文件的擁有者權限。以/usr/bin/passwd文件為例:
passwd文件權限
s出現在了擁有者的x權限位置,表示該文件有SUID權限,且其他人對該文件有x權限。由于SUID權限的存在,所以其他人在執行passwd命令時,會臨時獲取到root(擁有者是root)權限,進而可以對/etc/shadow文件進行寫入操作。這也是為什么普通用戶也能用passwd命令修改自己密碼的緣故。
參考命令:
chmod u+s /script/setdns #為文件setdns文件賦于SUID權限
chmod u-s /script/setdns #取消SUID權限
3、SGID(Set GID):對二進制文件和目錄都有效,一個文件如果有SGID權限,那么其他人在執行該文件時,可以臨時獲取到該文件所屬組的權限。一個目錄如果有SGID權限,那么在該目錄下創建的文件、目錄會繼承父目錄的所屬組信息。以根下的一個work目錄為例:
work目錄權限
s出現在了目錄所屬組的x權限位置,表示該目錄有SGID權限。由于SGID權限的存在,任何用戶在該目錄下創建的文件、目錄的所屬組都會是sindy組。
參考命令:
chmod g+s /work #為work目錄賦于SGID權限
chmod g-s /work #取消SGID權限