特殊權限(基於執行權的)
suid 設置用戶編號
suid 作用:給一個執行文件設置該權限後,任何能夠執行該文件的
用戶都以該文件擁有者的身份去運行
設置完畢後所屬組位置的x會被替換為s,若s小寫則表示所屬人的執行權限還在,
若S大寫則表示所屬人的執行權限不在
設置方法
chmod u+s 文件路徑
-rwxr-xr-x. 1 root root 2289656 Jun 10 2014 /usr/bin/vim
注:SetUID很危險,如果把vim命令設置了SUID,那麼普通用戶就可以用vim修改系統所有配置文件,比如把/etc/passwd文件中自己的用戶分類修改成0(超級用戶)。
Sgid 設置組編號
針對文件
給一個執行文件設置該權限後,任何能夠執行此文件的
用戶都以該文件的屬組的身份去
運行
設置完畢後所屬組位置的x會被替換為s,若s小寫則表示所屬人的執行權限還在,若S大寫則表示所屬人的執行權限不在
針對目錄
權限的繼承,給目錄設置sgid權限後
任何人在此目錄下
創建內容,內容的屬組與該目錄所屬組一致,
設置完畢後所屬組位置的x會被替換為s,若s小寫則表示所屬人的執行權限還在, 若S大寫則表示所屬人的執行權限不在
設置方法
chmod g+s 路徑 /share
設置完畢後所屬組位置的x會被替換為s,若s小寫則表示所屬人的執行權限還在,
若S大寫則表示所屬人的執行權限不在
eg : 在/tmp 目錄下新建一個目錄,設置sgid 權限後,新建用戶,在/tmp目錄中新建目錄,查看權限
sbit 對權限的收縮
只對目錄有效,一旦設定,那麼該目錄中存放的內容只能被內容的所屬人刪除,也就是說用戶在該目錄下只能刪除屬於自己的文件
設置方法
chmod o+t 目錄路徑
設置完畢後其他人位置的x會被替換為t,若t小寫則表示所屬人的執行權限還在,
若T大寫則表示所屬人的執行權限不在
SUID/SGID/SBIT權限設置
和我們前面說的rwx差不多,也有兩種方式,一種是以字符,一種是以數字。
特殊權限 數字表達 權限設置方法
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
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 權限
[root@feixiangkeji tmp]# ls -ld /tmp
drwx---rwx. 9 root root 4096 Apr 11 22:51 /tmp
[root@feixiangkeji tmp]# chmod o+t /tmp 設置sbit 權限
[root@feixiangkeji 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 )
寫的有點急,請大家 見諒! 謝謝
閱讀更多 運維小弟 的文章