Sudo

sudo 要求輸入哪個使用者的密碼?

  • May 3, 2018
$ ls -l /usr/bin/sudo
-rwsr-xr-x 1 root root 136808 Jul  4  2017 /usr/bin/sudo

sosudo可由任何使用者執行,並且任何執行的使用者都sudo將 root 作為程序的有效使用者 ID,因為設置了 set-user-id 位/usr/bin/sudo

來自https://unix.stackexchange.com/a/11287/674

sudo 和 su 之間最明顯的區別是sudo 需要使用者的密碼,而 su 需要 root 的密碼。

  1. 需要哪個使用者的密碼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,但它沒有回答上述問題。

  1. 在其最常見的配置中,sudo要求輸入執行 sudo使用者的密碼(如您所說,該使用者對應於程序的真實使用者 ID)。的重點sudo是授予特定使用者額外的權限(由 中的配置確定sudoers),而這些使用者無需提供除他們自己之外的任何其他身份驗證。但是,sudo 確實會檢查執行的使用者是否sudo真的是他們聲稱的身份,並且它通過詢問他們的密碼(或為 設置的任何身份驗證機制sudo,通常使用 PAM 來做到這一點 - 所以這可能涉及指紋或兩個因素認證等)。

sudo不一定授予成為root的權利,它可以授予各種特權。任何被允許成為 root 的使用者sudoers都可以只使用他們自己的身份驗證來做到這一點;但是使用者不允許,不能(至少,不能使用sudo)。這不是由 Linux 本身強制執行的,而是由sudo(及其身份驗證設置)強制執行的。 2. sudo確實在它開始執行後要求輸入密碼;它不能做其他事情(在它開始執行之前它不能做任何事情)。詢問密碼的sudo目的,即使它是 root,也是為了驗證執行使用者的身份(在其典型配置中)。

引用自:https://unix.stackexchange.com/questions/441151