Sudo

sudo 命令在不提示輸入密碼的情況下執行

  • May 5, 2015

不知為何,突然發卡的時候不用輸入密碼了sudo some_cmd

即使我沒有以 root 使用者身份登錄,輸入的命令也會在不提示密碼的情況下執行。儘管如此,仍然需要呼叫需要 root 權限的命令sudo。我在 Ubuntu 10.04 上。

知道是什麼原因造成的嗎?

sudo -K,然後重試您的測試。如果它再次開始詢問,那麼所發生的只是您已sudo配置記住密碼一段時間。

最重要的是,Ubuntu 的預設sudo配置使它可以記住您跨ttys 的憑據。正如您所發現的,這會影響ssh會話,因為每個新ssh連接看起來都像是低級作業系統程式碼的新終端。

這也會影響圖形終端應用程序之類的東西。如果您使用 進行身份驗證sudo,然後使用 Ctrl-Shift-T 創建一個新選項卡,您會發現您不需要sudo在該選項卡中再次輸入密碼,儘管它也會創建一個新的tty. 您甚至可以完全關閉終端應用程序,只要您在正常密碼超時內重新啟動它,它sudo就會執行而無需您重新輸入密碼。這種行為可能足以讓您決定要保持啟用此功能。

如今,Mac OS X 也以這種方式工作。

並非所有 *ixes 都可以。Red Hat Enterprise Linux(以及 CentOS 等衍生產品)堅持在每個新的tty.

Defaults您可以通過將行更改為以下內容來禁用這兩種行為/etc/sudoers

Defaults=env_reset,timestamp_timeout=0,tty_tickets
  • env_reset位應該已經存在,在這裡不相關
  • timestamp_timeout指令告訴它立即超時每個sudo會話。這就像sudo -K在每個正常sudo命令之後說的。
  • tty_tickets指令確保它將憑據與tty它們所使用的相關聯,而不僅僅是使用者名。sudo這應該已經是預設設置了,並且在 Ubuntu 上也有這樣的記錄,但是出於上面給出的方便原因,他們必須建構他們的發行版來禁用此選項。

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