Linux 系統中的特殊權限

特殊權限(基於執行權的)

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

Linux 系統中的特殊權限

su - hjk

vim /etc/passwd

Linux 系統中的特殊權限

切換到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

Linux 系統中的特殊權限

su - hjk

cd /tmp

mkdir test

Linux 系統中的特殊權限

我們發現 創建的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

權限拒絕

Linux 系統中的特殊權限

那麼 ,我們就可以得到結論,任何用戶在設置sbit 的目錄下創建的內容只能自己和root 超級管理員可以管理,其他用戶沒有權限管理!

ok ,那我們 標準的共享目錄的權限 就是 3777 (sgid + sbit )

寫的有點急,請大家 見諒! 謝謝


分享到:


相關文章: