sssd
を使用してユーザー/グループ検索用のWindowsActive Directory(AD)ドメインに接続されているLinuxホストが多数あります。これは、1つの問題を除いて、ほとんど問題なく機能します。 Sudo
。
Sudo
コマンドを実行するたびにテストで見つけたものからSudo
は、ユーザーが所属するすべてのグループのすべての名前を解決しようとします。sssd
以降デフォルトでのみgidをキャッシュし、名前の検索を遅くする必要があります(sssd
が最近ホストにグループ名をキャッシュする原因になっていないと仮定します)これにより、Sudo
コマンドが発生する可能性があります多くのグループのアカウントで45秒間一時停止してから、ユーザーにパスワードの入力を求めてSudo
コマンドを続行します。
私のテストでは、このグループ名の解決は、グループを使用するユーザーに適用されるSudo
ルールがあるかどうかに関係なく行われます。 Sudo.conf
でgroup_source値を変更することをテストしましたが、あまり効果がないようです。
所属するほとんどのグループからすべてのユーザーを削除することは実際にはオプションではないため(インフラストラクチャのセキュリティに関する決定は制御できません)、Sudo
の一時停止を停止する方法を見つける必要があります。すべてのグループIDが検索されている間。
私がこれまでに思いついた唯一の解決策は、15分ごとにcronjobを実行して、getent group
のようなことを実行し、sssd
がグループ名をメモリに継続的にキャッシュしておくようにすることですが、これはハックな修正のようです。だから私はネット上の誰かがこの状況でSudo
をスピードアップするためのより良い解決策を持っているかもしれないことを望んでいますか?
_ignore_group_members
_オプションをtrue
に設定するか、キャッシュをtmpfsにシンボリックリンクするか、1.14アップストリームリリースを待つことをお勧めします。
グループの解決が遅い理由は、キャッシュの有効期限が切れた後にキャッシュの更新時にグループを保存すると、何も変更されていない場合でも、常に完全なグループオブジェクトがディスク上のキャッシュに書き込まれるためです。 1.14では、何かが実際に変更された場合にのみキャッシュを更新するようにキャッシュロジックを変更しています。 One Fourteen Performance Improvements を参照してください。
_ignore_group_members
_を設定すると、グループが空のように見え、サイズが小さくなり、キャッシュの保存時間が短縮されます。 Sudo
はinitgroups()
を使用して、_getent group
_ではなくユーザーがメンバーであるグループを確認するため、これはSudo
機能に影響を与えないことに注意してください。およびinitgroups。
また、IPAサーバーの場合に焦点を当てていますが、sssd
のパフォーマンスチューニングについて ブログ投稿 と書いていますが、_sssd-ad
_構成にも多くの点が当てはまります。