Linux之特殊許可權
特殊許可權(基於執行權的)
1、suid 設定使用者編號
只針對檔案
suid 作用:給一個執行檔案設定該許可權後,任何能夠執行該檔案的
使用者都以該檔案擁有者的身份去執行
設定完畢後所屬組位置的x會被替換為s,若s小寫則表示所屬人的執行許可權還在,
若S大寫則表示所屬人的執行許可權不在
例子:/usr/bin/passwd檔案的許可權是-rwsr-xr-x,普通使用者(other)對該檔案無w許可權,但因為有x許可權,且具有suid的特殊許可權,所以以該檔案擁有者(root)的身份去執行,在執行該檔案過程中擁有root賬戶的許可權,從而可以實現修改密碼
設定方法
chmod u+s 檔案路徑
-rwxr-xr-x. 1 root root 2289656 Jun 10 2014 /usr/bin/vim
注:SetUID很危險,如果把vim命令設定了SUID,那麼普通使用者就可以用vim修改系統所有配置檔案,比如把/etc/passwd檔案中自己的使用者分類修改成0(超級使用者)。
2、Sgid 設定組編號
針對檔案時:
給一個執行檔案設定該許可權後,任何能夠執行此檔案的
使用者都以該檔案的屬組的身份去
執行
設定完畢後所屬組位置的x會被替換為s,若s小寫則表示所屬人的執行許可權還在,若S大寫則表示所屬人的執行許可權不在
針對目錄時:
許可權的繼承,給目錄設定sgid許可權後
任何人在此目錄下
建立內容,內容的屬組與該目錄所屬組一致,
設定完畢後所屬組位置的x會被替換為s,若s小寫則表示所屬人的執行許可權還在, 若S大寫則表示所屬人的執行許可權不在
設定方法
chmod g+s 路徑 /share
設定完畢後所屬組位置的x會被替換為s,若s小寫則表示所屬人的執行許可權還在,
若S大寫則表示所屬人的執行許可權不在
例子: 在/tmp 目錄下新建一個目錄,設定sgid 許可權後,新建使用者,在/tmp目錄中新建目錄,檢視許可權
3、sbit 對許可權的收縮
只對目錄有效,一旦設定,那麼該目錄中存放的內容只能被內容的所屬人刪除,也就是說使用者在該目錄下只能刪除屬於自己的檔案
設定方法
chmod o+t 目錄路徑
設定完畢後其他人位置的x會被替換為t,若t小寫則表示所屬人的執行許可權還在,
若T大寫則表示所屬人的執行許可權不在
SUID/SGID/SBIT許可權設定
有兩種方式,一種是以字元,一種是以數字。
特殊許可權 數字表達 許可權設定方法
suid 4
sgid 2
sbit 1
下面我們就來看看如何設定,並看看達到的效果。
先看SUID的作用及設定
ls -l /usr/bin/vim
-rwxr-xr-x. 1 root root 2289656 Jun 10 2014 /usr/bin/vim 是一個二進位制檔案
講vim 命令賦予 suid 許可權
chmod u+s /usr/bin/vim
-rwsr-xr-x. 1 root root 2289656 Jun 10 2014 /usr/bin/vim
我們使用 vim 直接編輯我們的/etc/passwd 這個存放使用者資訊的檔案,看看其他使用者能否編輯(在不設定suid 的情況下肯定其他使用者是不可以編輯的)
su - hjk
vim /etc/passwd
切換到hjk普通使用者上,我們可以直接把hjk使用者的uid 改為0
那就表示 我們的hjk 使用者借用了我們vim 擁有者的root的身份去執行
這樣會給我們的系統造成很大的威脅 , 所以 請善用 suid 許可權
接著看 sgid 的效果
這裡我就直接演示 目錄設定sgid 許可權的效果
給/tmp 目錄設定sgid 許可權後,切換使用者,在/tmp目錄中新建目錄,檢視許可權
ls -ld /tmp
drwx---rwx. 10 root root 4096 Apr 11 22:37 /tmp
任何使用者都可以在/tmp 目錄下去建立內容
chmod g+s /tmp
ls -ld /tmp
su - hjk
cd /tmp
mkdir test
我們發現 建立的test 目錄的所屬組 變為了我們 父目錄tmp 目錄的所屬組root
這就表明,我們在此目錄下建立內容,我們的root管理員都可以進行管理
最後 我們 看下 sbit 許可權的效果
同樣 我們還是以 /tmp 目錄作為例子 ,設定 sbit 許可權
[[email protected] tmp]# ls -ld /tmp
drwx---rwx. 9 root root 4096 Apr 11 22:51 /tmp
[[email protected] tmp]# chmod o+t /tmp 設定sbit 許可權
[[email protected] tmp]# ls -ld /tmp
drwx---rwt. 9 root root 4096 Apr 11 22:51 /tmp
su - hjk 切換到 hjk 普通使用者上
mkdir /tmp/test
ls -ld/tmp/test
drwxrwxr-x 2 hjk hjk 4096 Apr 11 22:54 test
su - test 切換到 test 普通使用者上
mkdir /tmp/hjk
ls -ld /tmp/hjk
drwxrwxr-x 2 test test 4096 Apr 11 22:57 hjk
看看是否可以刪除 hjk 使用者的test 目錄
rm -rf test
許可權拒絕
那麼 ,我們就可以得到結論,任何使用者在設定sbit 的目錄下建立的內容只能自己和root 超級管理員可以管理,其他使用者沒有許可權管理!
ok ,那我們 標準的共享目錄的許可權 就是 3777 (sgid + sbit )
裝載自:https://baijiahao.baidu.com/s?id=1597532383959518765&wfr=spider&for=pc