Show Table of Contents
11.2.8. サービスの設定: sudo
11.2.8.1. sudo、LDAP、SSSD について
sudo ルールは sudoers ファイルで定義されており、これは一貫性の維持のために各マシンに個別に配布される必要があります。
大規模な環境で管理者がこれを管理する方法の一つは、中央 LDAP ディレクトリーに
sudo 設定を保存し、各ローカルシステムをその LDAP ディレクトリーに向けるように設定することです。これにより、アップデートは単一の場所でのみ必要となり、新しいルールはローカルシステムが自動的に認識することになります。
sudo-LDAP 設定では、各 sudo ルールは、LDAP 属性で定義されている sudo ルールとともに LDAP エントリーとして保存されます。
sudoers ルールは以下のようになります。
Defaults env_keep+=SSH_AUTH_SOCK ... %wheel ALL=(ALL) ALL
LDAP エントリーは以下のようになります。
# sudo defaults dn: cn=defaults,ou=SUDOers,dc=example,dc=com objectClass: top objectClass: sudoRole cn: defaults description: Default sudoOptions go here sudoOption: env_keep+=SSH_AUTH_SOCK # sudo rule dn: cn=%wheel,ou=SUDOers,dc=example,dc=com objectClass: top objectClass: sudoRole cn: %wheel sudoUser: %wheel sudoHost: ALL sudoCommand: ALL
注記
SSSD は、
sudoHost 属性の値により、ローカルシステムに適用される sudo ルールのみをキャッシュします。つまり、sudoHost の値は ALL に設定され、ホスト名かシステムネットグループ、システムホスト名か完全修飾ドメイン名または IP アドレスに合致する正規表現を使用します。
sudo サービスは、LDAP サーバーに向けて、それらの LDAP エントリーからルール設定を引き出すように設定が可能です。sudo 設定を LDAP ディレクトリーではなく、SSSDに向けることができます。すると SSSD は sudo が必要とする全情報を保存し、ユーザーが sudo 関連の操作を行おうとすると、最新の sudo 設定が LDAP ディレクトリーから SSSD 経由で引き出されます。しかし、SSSD は sudo ルールをすべてキャッシュするので、LDAP サーバーがオフラインになっても、offline ユーザーは中央化された LDAP 設定を使用してタスクを実行することができます。
11.2.8.2. SSSD を使った sudo の設定
SSSD
sudo 設定オプションはすべて、sssd-ldap(5) man ページに一覧表示されています。
sudo サービスは、以下の手順で設定します。
sssd.confファイルを開きます。[root@server ~]# vim /etc/sssd/sssd.conf
sudoサービスを SSSD が管理する一覧に追加します。[sssd] services = nss,pam,
sudo....- 新たな
[sudo]サービス設定セクションを作成します。このセクションは空白のままでかまいません。唯一設定可能なオプションは、sudo not before/after period の評価です。ただし、このセクションは、SSSD がsudoサービスを認識し、デフォルト設定を提供するために必要となります。[sudo]
sudo情報は、SSSD 設定の設定済み LDAP ドメインから読み取られるので、LDAP ドメインが利用可能である必要があります。LDAP プロバイダーには、以下のパラメーターが必要です。- ディレクトリーのタイプ、
sudo_provider; これは常にldapです。 - 検索ベース、
ldap_sudo_search_base - LDAP サーバーの URI、
ldap_uri
例:[domain/LDAP] id_provider = ldap sudo_provider = ldap ldap_uri = ldap://example.com ldap_sudo_search_base = ou=sudoers,dc=example,dc=com
ID 管理 (IdM または IPA) プロバイダーは、サーバー接続時に Kerberos 認証を行うために追加のパラメーターが必要になります。[domain/IDM] id_provider = ipa ipa_domain = example.com ipa_server = ipa.example.com
ldap_tls_cacert = /etc/ipa/ca.crtsudo_provider = ldap ldap_uri = ldap://ipa.example.com ldap_sudo_search_base = ou=sudoers,dc=example,dc=comldap_sasl_mech = GSSAPIldap_sasl_authid = host/hostname.example.comldap_sasl_realm = EXAMPLE.COMkrb5_server = ipa.example.com注記
ID 管理プロバイダーのsudo_providerタイプはldapのままです。sudoルールキャッシュをリフレッシュする間隔を設定します。特定のシステムユーザー向け キャッシュは、そのユーザーがタスクを実行すると毎回必ずチェックされ、アップデートされます。しかし、SSSD はローカルシステムに関連するルールをすべてキャッシュします。この完全なキャッシュは、以下の 2 つの方法でアップデートされます。- 増分、つまり最後の完全アップデートからルールになされた変更のみ (
ldap_sudo_smart_refresh_interval、秒数); デフォルト値は 15 分間。 - 完全、つまりキャッシュ全体をダンプし、LDAP サーバー上の最新ルールすべてをプルします (
ldap_sudo_full_refresh_interval、秒数); デフォルト値は 6 時間。
これら 2 つの間隔は、以下のように別個に設定されます。[domain/LDAP] ... ldap_sudo_full_refresh_interval=86400 ldap_sudo_smart_refresh_interval=3600
注記
SSSD は、ローカルシステムに適用されるsudoルールのみをキャッシュします。つまり、sudoHostの値は ALL に設定され、ホスト名かシステムネットグループ、システムホスト名か完全修飾ドメイン名または IP アドレスに合致する正規表現を使用します。- オプションでは、任意の値を設定して、
sudoルールに使われるスキーマを変更します。スキーマ要素は、ldap_sudorule_*属性で設定されています。デフォルトでは、すべてのスキーマ要素が sudoers.ldap で定義されたスキーマを使用します。これらのデフォルトは、ほとんどすべての導入で使用されます。 sssd.confファイルを保存し、閉じます。nsswitch.confファイルを編集し、sssの場所を加えることでsudoが SSSD のルール設定を探すように設定します。[root@server ~]# vim /etc/nsswitch.conf sudoers: files
sss- SSSD を再開始します。
[root@server ~]# service sssd restart

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.