為什麼 sudo 指令需要很長時間才能執行?

為什麼 sudo 指令需要很長時間才能執行?

在過去的幾個月裡,我一直在學習 Linux(Fedora 10,然後是 11)(並且非常喜歡它——就像重新發現電腦一樣,有很多東西需要學習)。

我已將使用者新增至/etc/sudoers文件的最後一行,如下所示,這樣當我執行命令時就不會被要求輸入密碼sudo

MyUserName ALL=(ALL) NOPASSWD:ALL

現在,每次我使用 執行命令時sudo,它都會在實際執行任務之前暫停相當長的時間(約 10 秒)。為什麼會這樣?我在 Fedora 11 x86 64 上運行 Sudo 版本 1.7.1。

答案1

我在 SO 上問過這個問題,它被移到了這裡。這就是說,我不再能夠像我擁有它一樣編輯問題,甚至接受正確的答案,但這被證明是真正的原因以及如何解決它:

在這裡找到 那裡的用戶“rohandhruva”給出了正確的答案:

如果您在安裝過程中更改主機名,就會發生這種情況。

若要解決該問題,請編輯檔案 /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 <ADD_YOURS_HERE> 
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 <ADD_YOURS_HERE>

答案2

檢查您的系統日誌守護程式是否正常運作;這給我帶來了問題。

運行以下命令

logger 'Hello world'
  1. 命令是否在合理的時間內返回?

  2. 「Hello world」出現在嗎/var/log/syslog

如果不是這種情況,則 syslog 守護程序已崩潰。重新啟動它應該可以解決您的問題。

答案3

是它需要在網路掛載上讀取的檔案/目錄之一,還是以某種方式觸發從慢速 USB 裝置讀取?嘗試 strace 看看哪裡慢;如果時間過得太快,就做

sudo strace -r -o trace.log sudo echo hi

每行將以進入上一個系統呼叫以來所花費的時間開始。

(最初的 sudo 似乎是必要的;我不知道這會對結果產生多大的影響。)

答案4

我遇到了同樣的問題,我檢查了 /var/log/auth.log 和 syslog 是否有錯誤。事實證明,我的 LDAP 伺服器無法訪問,這導致一切速度變慢。

我不再使用基於 LDAP 的身份驗證,因此我從 /etc/nsswitch.conf 中刪除了所有“ldap”引用

從那時起,一切又恢復了魅力。

相關內容