1. 程式人生 > >Linux之特殊許可權

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