Users

為什麼 sudo 告訴我我的密碼錯誤?

  • November 2, 2011

我最近在我的電腦上安裝了 OpenBSD 4.9,所以我可以學習一點關於類 Unix 作業系統的知識。我在系統中添加了一個名為 bruno 的新使用者。好的。當我使用“sudo”命令時,它要求我輸入密碼。所以,我輸入密碼。但它讓我告訴密碼是錯誤的,即使我確定密碼是正確的。我在這裡想念什麼?我知道如果添加

bruno ALL = (ALL) NOPASSWD: ALL

到 /etc/sudoers 文件,它停止詢問密碼,我可以執行 sudo 命令。我應該在這裡做什麼?什麼是最正確/最安全的選項?如果這是一個微不足道的問題,我很抱歉。我找不到這個問題的好解釋。我不僅在尋找解決方案,還在尋找關於整個使用者/權限/密碼如何工作的解釋。

這說明了身份驗證授權之間的區別。

Sudo 主要是一個授權工具。它的工作是確定是否允許您以提升的權限執行命令,如果允許,則執行該命令。像這樣的條目

bruno ALL = (ALL): ALL

sudoers文件中允許使用者bruno以任何權限執行任何命令。

為了應用此規則,Sudo 需要知道呼叫它的使用者確實是bruno. 原則上,它可以依賴於系統的認證機制:如果你能以 as 執行命令bruno,則表示你已經通過了 as 的身份驗證bruno。但是,由於使用 Sudo 可能會產生重大後果,因此 Sudo 需要一些額外的身份驗證:有時您需要再次輸入密碼。這意味著,如果您讓控制台無人看管,並且路人將命令作為 執行bruno,他們將無法使用 Sudo:他們可能會損壞您的帳戶,但不會損壞系統的其餘部分。

請求密碼的另一個好處是它會提醒您正在發生一些不尋常的事情。例如,應用程序不能靜默呼叫sudo:它需要詢問您的密碼,並且意外的密碼提示會提醒您發生了一些不好的事情。

實際上,每次執行 Sudo 時都要求輸入密碼會很煩人。因此預設行為是妥協:每隔幾分鐘詢問一次密碼。這樣,路人或應用程序sudo只有在您在最後幾分鐘內完成時才執行,從而造成傷害。

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