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.crt
sudo_provider = ldap ldap_uri = ldap://ipa.example.com ldap_sudo_search_base = ou=sudoers,dc=example,dc=comldap_sasl_mech = GSSAPI
ldap_sasl_authid = host/hostname.example.com
ldap_sasl_realm = EXAMPLE.COM
krb5_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
このページには機械翻訳が使用されている場合があります (詳細はこちら)。