sudo
Ubuntu 14.04サーバーで最初に入力するのが常に遅い。パスワードプロンプトがすぐに表示されますが、Enterキーを押した後、出力が印刷されるまで約10〜15秒かかります。この後のすべてのsudoコマンドは即座に実行されます。
sudo strace -S time -c sudo echo hi
からのsudo sudo echo hi
はすでに2番目のsudoであり、高速に実行されるため、このような場合に何かを実行しても、有用なものは何も表示されません。時間が経過して、実行中のセッションでパスワードを再入力する必要がある場合、再び遅くなります。
私が見つけたすべての解決策は、/etc/hosts
ファイルに127.0.0.1の解決策としてホスト名を追加することでしたが、これは役に立ちませんでした。su root
即座に実行されます。ここ数日で私が変更したことを覚えているのは、サーバーがルーティングしているサブネットのネットマスク、samba、dnsutils、bind9のインストールだけです。しかし、これらのプロセスはどれも実行されておらず、物理的なアクセスでは、sshセッションとtmuxセッションに問題が残っています。
編集:新しいアプローチ
sudo tcpdump -vvvi any > tcpdump.log
すべてのNICを取り外した状態で実行してみました。ログには、以下の多くが示されています。
18:35:09.453399 IP (tos 0x0, ttl 64, id 49112, offset 0, flags [DF], proto UDP (17), length 76)
localhost.38498 > localhost.domain: [bad udp cksum 0xfe4b -> 0x1050!] 58546+ SRV? _kerberos._udp.KF.OURLOCALDOMAIN.DE. (48)
18:35:09.457412 IP (tos 0x0, ttl 64, id 49113, offset 0, flags [none], proto UDP (17), length 76)
localhost.domain > localhost.38498: [bad udp cksum 0xfe4b -> 0x8fcd!] 58546 ServFail q: SRV? _kerberos._udp.KF.OURLOCALDOMAIN.DE. 0/0/0 (48)
同じエントリがudpのtcp instadで表示されます。大学のドメイン名をOURLOCALDOMAINに置き換えました。
今私はケルベロスがそれと何か関係があるかもしれないと思います、しかし私は/etc/krb5.confを削除して再起動しました、それでも変更はありません。私には、サーバーが私たちの大学のネットワークから中央のkerberosサーバーで自分自身を検証しようとしているようです。数年前、このIPは私たちの部署のためにsambaを実行するサーバーに登録されていたことがわかります。接続があるのでしょうか?ホスト名を当時使用していたホスト名に変更しましたが、sudoの動作に変更はありませんでした。LmwangiはPAMについて何かを提案していますが、私はほとんど知識がありません。そのため、これにどのように取り組むかわかりません。また、Sambaのインストール中に問題が発生したため、Sambaのインストール時にHeimdal KerberosからMIT Kerberosに切り替えたことを思い出しました。翌日もコメントからのアイディアを試すつもりですが、数日旅行するので時間がかかるかもしれません。
編集2:解決済み
/etc/network/interfaces
すべてを台無しにしたレガシーDNS検索エントリがにありました。私はとても愚かだ。今はすべてうまくいきます。
sudo -k
、キャッシュされた資格情報を削除します。私が見つかりました。strace -Tro sudo.log sudo echo hi
最後の列が各呼び出しの時間を示しているとして有用でした。grep
用uname
やsocket
スターターなど。
-r
オプションからのものです(おそらく削除する必要があります)。以下からの長い呼び出しを探して開始-T
オプション-彼らは内のものであり<
そして>
あなたのケースでは0.000097秒- 。
strace
最終的にそこに到達しますが、これはおそらくより高いレベルの構成の問題です。認証中のほとんどの長い一時停止は、リモートサーバーへのアクセスに失敗し、タイムアウトを待機する必要があるためです。サブネットの変更により、認証サーバーがこのサブネットとは異なるサブネットに置かれた可能性があります。sudo
成功した認証の記録を一時的に保存する/var
ので、これがおそらく、後続の呼び出しが即座に実行される理由です。
strace
すると、最初のなしで実行できますsudo
。-o <file>
分析のために出力をファイルに保存するオプションを使用すると役立つ場合もあります。