首頁  >  文章  >  運維  >  linux s是什麼權限

linux s是什麼權限

青灯夜游
青灯夜游原創
2022-07-19 18:24:1511045瀏覽

在linux中,s指的是“強制位元權限”,位於user或group權限群組的第三位置。如果在user權限群組中設定了s位,則當檔案執行時,該檔案是以檔案擁有者UID而不是使用者UID執行程式;如果在group權限群組中設定了s位,當檔案執行時,該文件是以文件所有者GID而不是用戶GID執行程式。 s權限位是敏感的權限位,容易造成系統的安全性問題。

linux s是什麼權限

本教學操作環境:linux7.3系統、Dell G3電腦。

在Linux系統中最常見的檔案權限是w、r、x,分別對應寫、讀取、執行權限,但是除此之外Linux還支援另外一系列的權限設置,例如s權限、t權限。下面就介紹一下s權限的具體意義。

s權限

 s,表示set UID或set GID。位於user或group權限群組的第三位置。如果在user權限群組中設定了s位,則當檔案執行時,該檔案是以檔案擁有者UID而非使用者UID 執行程式。如果在group權限群組中設定了s位,當檔案執行時,則該檔案是以檔案擁有者GID而非使用者GID執行程式。 s權限位是敏感的權限位,容易造成系統的安全性問題。請在設定時小心,並注意系統中已有的SUID或SGID檔案和目錄。

s權限包含S_ISUID、S_ISGID兩個常數在內,稱為強制位元權限;

S_ISUID只能套用於二進位執行檔*;

S_ISGID可套用於二進位執行檔*和目錄;

*shell腳本不可以,因為shell腳本並不是二進位執行檔.

S_ISUID、S_ISGID用在二進位檔案時:

  • 如果S_ISUID為真,則把此行程的有效使用者ID設定為此檔案擁有者的使用者ID.

  • 如果S_ISGID為真,則把此進程的有效用戶群組ID設定為此檔案的群組ID.

由於進程有使用者/群組ID影響檔案存取權限,所以就相當於臨時擁有檔案擁有者的身分.典型的檔案是passwd. 如果一般使用者執行該檔案, 則在執行過程中, 該檔案可以獲得root權限, 從而可以更改使用者的密碼.

S_ISGID用在目錄時:

目前使用者執行chdir切換至該目錄後,使用者行程的有效使用者群組ID(effective group)將會設定為該目錄的使用者群組.若使用者在此目錄下具備w權限,則使用者程序所建立的新檔案的使用者群組ID與該目錄使用者群組ID相同.

ls -al /usr/bin/passwd
-rwsr-xr-x 1 pythontab pythontab 32988 2018-03-16 14:25 /usr/bin/passwd

兩個常數的值是:

# # octdec#S_ISUID40002048S_ISGID
##2048
2000

1024

即分別是第12位元和第11位元的遮罩。

如何使用?
  • 我們可以透過字元模式設定s權限:

    chmod a s filename
  • #,也可以使用絕對模式來設定:
  • 設定suid :將對應的權限位之前的那一位設定為4;
  • 設定guid:將對應的權限位元之前的那一位設定為2;

#兩者都置位:將對應的權限位元之前的那一位設定為4 2=6.

設定一個檔案執行階段具備檔案擁有者UID的身份:

chmod 4755 test

設定一個檔案運行時具備檔案擁有者GID的身份:

chmod 2755 test
設定一個檔案在執行時以上兩者兼備的身分:

chmod 6755 test

注意:設定s權限時文件屬主、屬組必須先設定對應的x權限,否則s權限並不能正真生效(c h m o d指令不進行必要的完整性檢查,即使不設定x權限就設定s權限, chmod也不會報錯,當我們ls -l時看到rwS,大寫S說明s權限未生效)

#總結

### 可執行的檔案搭配這個權限,便能得到特權,任意存取該檔案的擁有者能使用的全部系統資源。請注意具備SUID權限的文件,駭客經常利用這種權限,以SUID配上root帳號擁有者,無聲無息地在系統中開扇後門,供日後進出使用。 ######相關推薦:《###Linux影片教學###》###

以上是linux s是什麼權限的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn