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

syslog デーモンが正しく動作していることを確認してください。これが私の場合の問題の原因でした。

次のコマンドを実行します

logger 'Hello world'
  1. コマンドは妥当な時間内に戻りますか?

  2. 「Hello world」は に表示されますか/var/log/syslog?

そうでない場合は、syslog デーモンがクラッシュしています。再起動すると問題は解決するはずです。

答え3

読み取る必要のあるファイル/ディレクトリの1つがネットワークマウント上にあるか、または何らかの理由で低速USBデバイスからの読み取りをトリガーしていますか?straceを試して、どこが遅いのかを確認してください。速すぎる場合は、

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

各行は、前のシステムコールに入ってからかかった時間で始まります。

(最初の sudo は必要なようですが、それが結果にどの程度影響を与えるかはわかりません。)

答え4

私も同じ問題を抱えていました。/var/log/auth.log と syslog でエラーを確認しました。LDAP サーバーにアクセスできず、すべてが遅くなっていたことが判明しました。

LDAPベースの認証はもう使用しないので、/etc/nsswitch.confからすべての「ldap」参照を削除しました。

それ以来、すべてが再びうまくいくようになりました。

関連情報