Sudo
sudo
要求輸入哪個使用者的密碼?
$ ls -l /usr/bin/sudo -rwsr-xr-x 1 root root 136808 Jul 4 2017 /usr/bin/sudo
so
sudo
可由任何使用者執行,並且任何執行的使用者都sudo
將 root 作為程序的有效使用者 ID,因為設置了 set-user-id 位/usr/bin/sudo
。來自https://unix.stackexchange.com/a/11287/674
sudo 和 su 之間最明顯的區別是sudo 需要使用者的密碼,而 su 需要 root 的密碼。
- 需要哪個使用者的密碼
sudo
?是程序的真實使用者ID所代表的使用者嗎?如果是,是否任何使用者都可以通過執行
sudo
然後提供自己的密碼來獲得超級使用者權限?Linux可以限制某些使用者嗎? 2. 開始執行後詢問sudo
密碼是否正確?execve()``main()``/usr/bin/sudo
既然程序的euid已經改成root了(因為設置了/usr/bin/sudo的set-user-id位),以後sudo要密碼又有什麼意義呢?
謝謝。
我已閱讀https://unix.stackexchange.com/a/80350/674,但它沒有回答上述問題。
- 在其最常見的配置中,
sudo
要求輸入執行sudo
使用者的密碼(如您所說,該使用者對應於程序的真實使用者 ID)。的重點sudo
是授予特定使用者額外的權限(由 中的配置確定sudoers
),而這些使用者無需提供除他們自己之外的任何其他身份驗證。但是,sudo
確實會檢查執行的使用者是否sudo
真的是他們聲稱的身份,並且它通過詢問他們的密碼(或為 設置的任何身份驗證機制sudo
,通常使用 PAM 來做到這一點 - 所以這可能涉及指紋或兩個因素認證等)。
sudo
不一定授予成為root的權利,它可以授予各種特權。任何被允許成為 root 的使用者sudoers
都可以只使用他們自己的身份驗證來做到這一點;但是使用者不允許,不能(至少,不能使用sudo
)。這不是由 Linux 本身強制執行的,而是由sudo
(及其身份驗證設置)強制執行的。 2.sudo
確實在它開始執行後要求輸入密碼;它不能做其他事情(即在它開始執行之前它不能做任何事情)。詢問密碼的sudo
目的,即使它是 root,也是為了驗證執行使用者的身份(在其典型配置中)。