1. 程式人生 > >setuid、setgid、sticky的許可權簡單用法

setuid、setgid、sticky的許可權簡單用法

如何設定setuid、setgid、sticky的許可權:

setuid :置於 u 的 x 位,原位置有執行許可權,就置為 s,沒有了為 S .

 chmod 4xxx file

 chmod u+s xxx file

setgid:置於 g 的 x 位,原位置有執行許可權,就置為 s,沒有了為 S .

 chmod 2xxx file

 chmod g+s xxx file

sticky:粘滯位,置於 o 的 x 位,原位置有執行許可權,就置為 t ,否則為T .

 chmod 1xxx file

 chmod o+t xxx file

例如:

在root使用者下建立一個test目錄,並新建一個1.txt檔案。

然後在普通使用者jyw下刪除1.txt檔案,發現無法刪除。

在root使用者下新增setuid許可權S,那麼普通使用者jwy即可刪除1.txt檔案的許可權

 

所以我們說特殊許可權位很危險,一旦被hacker拿到,呵呵了。

我們可以檢視哪些命令有特殊許可權命令:

find / -type f –perm 4755|xargs ls

 

ping命令所有使用者都能使用,擁有特殊許可權,那麼我們把s許可權解除,普通使用者就無法ping了

 

---------------------------------------------------------------------

setgid:

例如:

對aaa目錄屬組更改為home,並授權於setgid S許可權,此目錄下新建的檔案屬home組。

 

此時我們對aaa目錄解除setgid s許可權,此目錄下新建的檔案不屬於home組

 

-------------------------------------------------------------------------------

sticky粘滯位:

例如:/tmp/  公用的臨時檔案儲存點

 

凡是linux使用者都能在/tmp/目下建立的檔案為所欲為。

 tmp檔案的用途:

一般是把一個資料夾的許可權都開啟,然後來共享檔案,方便帶來的安全隱患,生產環境我們一般不這樣使用!

--------------------------------------------------------------------------

關於suid知識小結:針對命令和二進位制程式的,指令碼不行。

1) 使用者或屬主對應的前三位許可權的X位上如果有S就表示suid許可權。當X為上沒有小寫X執行許可權的時候,suid的許可權顯示的就是大S。

2) suid作用是讓普通使用者可以以root或其他的使用者角色執行只有root或者其他使用者才能執行的程式或命令,程式或命令對應本來沒有許可權操作的檔案等。(注意和su及sudo的區別)

3) suid修改的是執行的命令passwd,而不是處理的目標檔案/ect/shadow。

4) 僅對二進位制命令程式有效,不能用在shell等類似指令碼檔案上。

5)  二進位制命令程式需要有可執行X許可權配合。

6) suid許可權僅在程式命令執行過程中有效。

7) 執行suid命令的任意系統使用者都可以獲得該命令程式在執行期間對應的屬主許可權。

8) suid雙刃劍,是一個比較危險的功能,對系統安全有一定的危險,系統suid的無用功能取消suid的許可權(安全優化)

 

setgid許可權知識小結:

1) 與suid不同的是,sgid既可以針對檔案也可以針對目錄設定。

2) sgid是針對使用者組許可權為修改的。

3) 對於檔案來說,sgid的功能如下:

  1. sgid僅對二進位制命令程式有效
  2. 二進位制命令或程式需要有可執行X許可權。
  3. 執行程式的任意使用者可以獲得該命令程式執行期間所屬組的許可權

4) 對於目錄來說,sgid的功能如下:

  1. linux裡預設情況下所有使用者建立檔案,預設使用者和組都是自身。
  2. sgid可以讓使用者再此目錄下建立的檔案和目錄,具有和此目錄相同的使用者許可權。

 

sticky許可權知識小結:

粘滯位1000許可權字元t(T),其他使用者位的X位上設定。chmod 1755 /tmp

如果對應為有X則字元許可權表現為小寫否則為大寫。