具有 SUID SGID 許可權的命令執行狀態

2021-06-22 12:30:15 字數 1314 閱讀 1297

具有 suid/sgid 許可權的命令執行狀態

suid 的許可權其實與程式的相關性非常的大!為什麼呢?先來看看 suid 的程式是如何被一般使用者執行,且具有什麼特色呢?

所以說,整個 suid 的許可權會生效是由於『具有該許可權的程式被觸發』,而我們知道乙個程式被觸發會變成程式,所以羅,執行者可以具有程式擁有者的許可權就是在該程式變成程式的那個時候啦!第七章我們還沒談到程式的概念,所以你或許那時候會覺得很奇怪,為啥執行了 passwd 後你就具有 root 的許可權呢?不都是一般使用者執行的嗎?這是因為你在觸發 passwd 後,會取得乙個新的程式與 pid,該 pid 產生時透過 suid 來給予該 pid 特殊的許可權配置啦!我們使用 dmtsai 登陸系統且執行 passwd 後,透過工作控制來理解一下!

[dmtsai@www ~]$ passwd

changing password for user dmtsai.

changing password for dmtsai

(current) unix password: <==這裡按下 [ctrl]-z 並且按下 [enter]

[1]+ stopped passwd

[dmtsai@www ~]$ pstree -u

init-+-acpid

....(中間省略)....

|-sshd---sshd---sshd(dmtsai)---bash-+-more

| |-passwd(root)

| `-pstree

....(底下省略)....

從上表的結果我們可以發現,底線的部分是屬於 dmtsai 這個一般帳號的許可權,特殊字型的則是 root 的許可權!但你看到了, passwd 確實是由 bash 衍生出來的!不過就是許可權不一樣!透過這樣的解析,你也會比較清楚為何不同程式所產生的許可權不同了吧!這是由於『suid 程式執行過程中產生的程式』的關係啦!

那麼既然 suid/sgid 的許可權是比較可怕的,您該如何查詢整個系統的 suid/sgid 的檔案呢?應該是還不會忘記吧?使用 find 即可啊!

find / -perm +6000

ps:1.檢視在背景中執行的程序:

jobs -l

-r:檢視執行的程序,

-s:檢視暫停的程序

2.殺死由於ctrl+z而stopped的程序:

kill -9 %n(或者直接加程序的pid)

n可以由jobs查得。

linux的特殊許可權SUID SGID和SBIT

1 suid,就重要的作用就是讓其它使用者在執行這個授有suid的程式時擁有該程式擁有者的許可權。就直接的例子就是passwd這命令 root localhost www ll usr bin passwd rwsr xr x 1 root root 31736 8月 22 2010 usr bin...

使apk具有system許可權

使apk具有system許可權的方法 方法一 1.在應用程式的androidmanifest.xml中的manifest節點中加入 android shareduserid android.uid.system 這個屬性。2.修改android.mk檔案,加入local certificate pl...

linux下建立具有root許可權的帳號

說明 u 0 指將uid指定為0 零 與root相同,登入後的提示符為 而非 o 指因為重複了uid 與root帳號的uid重複 必須指定這個引數.g root 初始化組的組名,當使用者屬於多個組時,在 g引數中指定 登入時所在組。預設該項時,系統新建乙個與使用者名稱同名的組,並且初始化時設為該組名...