web-dev-qa-db-ja.com

グループ名を検索したり、sssdグループ名の解決を高速化したりする必要がないようにSudoを設定する方法はありますか?

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をスピードアップするためのより良い解決策を持っているかもしれないことを望んでいますか?

1

_ignore_group_members_オプションをtrueに設定するか、キャッシュをtmpfsにシンボリックリンクするか、1.14アップストリームリリースを待つことをお勧めします。

グループの解決が遅い理由は、キャッシュの有効期限が切れた後にキャッシュの更新時にグループを保存すると、何も変更されていない場合でも、常に完全なグループオブジェクトがディスク上のキャッシュに書き込まれるためです。 1.14では、何かが実際に変更された場合にのみキャッシュを更新するようにキャッシュロジックを変更しています。 One Fourteen Performance Improvements を参照してください。

_ignore_group_members_を設定すると、グループが空のように見え、サイズが小さくなり、キャッシュの保存時間が短縮されます。 Sudoinitgroups()を使用して、_getent group_ではなくユーザーがメンバーであるグループを確認するため、これはSudo機能に影響を与えないことに注意してください。およびinitgroups。

また、IPAサーバーの場合に焦点を当てていますが、sssdのパフォーマンスチューニングについて ブログ投稿 と書いていますが、_sssd-ad_構成にも多くの点が当てはまります。

1
jhrozek