1.SUID和SGID權限
SUID是一種對二進制程序進行設置的特殊權限,可以讓二進制程序的執行者臨時擁有屬主的權限。
SGID可以讓其他用戶對某個可執行命令擁有屬組權限,原理同SUID。
比如passwd命令是linux系統中用來修改密碼的命令,系統中所有用戶都可以使用。而passwd命令改密碼的行爲是通過修改/etc/shadow文件來實現。查看/etc/shadow的權限:
[root@shijie ~]# ls -l /etc/shadow
----------. 1 root root 1184 5月 13 23:54 /etc/shadow
/etc/shadow對於普通用戶沒有任何權限,但是普通用戶是可以修改密碼的。查看
/bin/passwd的權限。
[root@shijie ~]# ls -l /bin/passwd
-rwsr-xr-x. 1 root root 27832 1月 30 2014 /bin/passwd
在原本所屬用戶執行權限的位置不是x而是s,這就是有SUID權限,普通用戶通過SUID權限使用passwd命令修改/etc/shadow文件了。若沒有執行權限設置了SUID權限這個位置就是S。
2.SBIT權限
SBIT特殊權限位可確保用戶只能刪除自己的文件,而不能刪除其他用戶的文件。SBIT只可以對目錄進行設置,當對某個目錄設置了SBIT權限後,那麼該目錄中的文件就只能被其所有者執行刪除操作了。
/tmp作爲一個共享文件的目錄,默認已經設置了SBIT特殊權限位,因此除非是該目錄的所有者,否則無法刪除這裏面的文件。
[root@shijie /]# ls -ld /tmp
drwxrwxrwt. 16 root root 4096 5月 15 00:48 /tmp
在原本其他用戶執行權限的位置不是x而是t,說明這個目錄開啓了SBIT權限。在該目錄下哪個用戶創建了文件或目錄,只有root或者該用戶才能刪除創建的文件。
若沒有執行權限設置了SBIT權限這個位置就是T。
3.設置特殊權限
新建文件file和文件夾dir,增加權限。
增加SUID:chmod u+s 文件名
取消SUID:chmod u-s 文件名
增加SGID:chmod g+s 文件名
增加SGID:chmod g-s 文件名
[root@shijie Desktop]# chmod u+s file
[root@shijie Desktop]# ls -l
drwxr-xr-x. 2 root shijie 6 5月 14 14:46 dir
-rwsr--r--. 1 root shijie 0 5月 14 14:47 file
使用數字配置
[root@shijie Desktop]# chmod 4744 file
[root@shijie Desktop]# ls -l
drwxr-xr-x. 2 root shijie 6 5月 14 14:46 dir
-rwsr--r--. 1 root shijie 0 5月 14 14:47 file
SUID:4
SGID:2
SBIT:1
權限數字相加,位置在所屬用戶之前。
4.文件的隱藏屬性
設置文件的隱藏屬性:chattr [參數] [+ - =][屬性] 文件
參數 作用
-R 遞歸處理目錄下的所有文件
-v 設置文件或目錄版本
-V 顯示指令執行過程
+ 開啓文件或目錄的該項屬性
- 關閉文件或目錄的該項屬性
= 指定文件或目錄的該項屬性
屬性 作用
i 不得任意更動文件或目錄
a 僅允許補充(追加)內容,無法覆蓋/刪除內容(Append Only)
S 文件內容在變更後立即同步到硬盤(sync)
s 徹底從硬盤中刪除,不可恢復(用0填充原文件所在硬盤區域)
A 不再修改這個文件或目錄的最後訪問時間(atime)
b 不再修改文件或目錄的存取時間
D 檢查壓縮文件中的錯誤
d 使用dump命令備份時忽略本文件/目錄
c 默認將文件或目錄進行壓縮
u 當刪除該文件後依然保留其在硬盤中的數據,方便日後恢復
t 讓文件系統支持尾部合併(tail-merging)
x 可以直接訪問壓縮文件中的內容
例:增加隱藏屬性,讓file文件無法被刪除和修改。
[root@shijie Desktop]# chattr +a file
[root@shijie Desktop]# rm file
rm:是否刪除普通空文件 "file"?y
rm: 無法刪除"file": 不允許的操作
[root@shijie Desktop]# echo 12345 > file
bash: file: 不允許的操作
查看文件權限,發現有所有權限,並不能看到無法刪除的屬性權限。這就要使用 lsattr命令查看隱藏屬性。
[root@shijie Desktop]# ls -l
drwxr-xr-x. 2 root shijie 6 5月 14 14:46 dir
-rwxr--r--. 1 root shijie 0 5月 14 14:47 file
[root@shijie Desktop]# lsattr file
-----a---------- file
[root@shijie Desktop]# chattr -a file
[root@shijie Desktop]# lsattr file
---------------- file
[root@shijie Desktop]# rm file
rm:是否刪除普通空文件 "file"?y
[root@shijie Desktop]#
刪除隱藏的a屬性,文件就可以修改和刪除了。