質問:
- sudoコマンドの実行には最大30秒かかることがあります。かかる時間は一貫しておらず、以前にコマンドを呼び出した場合はコマンドがすばやく返されることがありますが、ほとんどの場合必要なものよりはるかに長くかかります。また、sudoが実行されたとき去るネットワークはすぐに反応しますが、デバイスをWIFIに接続すると速度が非常に遅くなります。
環境
- オペレーティングシステム: Redhat7 エンタープライズ Linux
- ハードウェア:HP ZブックG3
- スマートカード認証が有効になっています。
sudo -V
:
Sudo version 1.8.6p7 Sudoers policy plugin version 1.8.6p7 Sudoers file grammar version 42 Sudoers I/O plugin version 1.8.6p7
試みたが失敗した解決策:
- ホスト名は/etc/hostsの2行にあります。
- 実行すると、
sudo strace -f -t sudo echo
最初のsudoが中断され、2番目のsudoコマンドが期待どおりに正常に実行されることが証明されます。 - straceの権限を変更して、自分のユーザー名で実行できるようにしました。だから実行してみる
strace -f -t sudo echo
と、コマンドがすぐに返され、中断はありませんでした。私が止まった場所を確認するためにsudoコマンドでstraceを実行できないようですので、これは残念です。
答え1
sudo
遅延時間は通常 DNS の問題が原因で発生します。
http://forums.fedoraforum.org/showthread.php?t=210503
あるユーザーもこの問題のために同様の2分遅れを経験しました。http://forums.fedoraforum.org/showpost.php?s=93387b186c8850e6837cea5f7a43457c&p=1194582&postcount=2
これが私の最初の調査ラインでした。time getent hosts $(hostname)
遅延があるかどうかを確認できます。
注:これが引き続き発生する理由は、アップストリームで解決されたと理解しています。sudo
ディストリビューションで使用しているバージョンがわかったら、とても興味深いでしょう。https://bugzilla.redhat.com/show_bug.cgi?id=479464#c9
それ以外の場合は、sudo内で問題が発生していることを確認してくださいsudo time sudo echo
。その後、実行してみることができますsudo strace -t -f sudo echo
。多くの出力がありますが、タイムスタンプが表示されます。 Recvmsg(メッセージの受信、タイムアウト待機、DNS応答)など、わずかな遅延が発生するいくつかのシステムコールを表示できます。完全な説明にはプログラミング知識が必要です。 dbusを介して何かが進行している場合、特定のdbusサービスが具体的に表示されないようです。 (ドロップボックス.com、gist.github.comなど、どこかに出力全体を投稿してリンクを歩いてください。)