LDAPのサポートはsudo自体に組み込まれているため、pam-modulesはここでは役に立ちません。 Debianでは、sudo-ldapパッケージをインストールする必要があります。
apt-get install sudo-ldap
とりわけ、パッケージは必要なLDAPスキームでファイルをインストールします:
/usr/share/doc/sudo-ldap/schema.OpenLDAP
、LDAPサーバーの両方にコピーし、/ etc / ldap / slapd.confファイルに書き込む必要があります。
include /etc/ldap/schema/sudo.schema
その後、sudoCommand、sudoHost、sudoRunAs、sudoUser、およびsudoOptionの各フィールドを持つsudoRoleクラスのオブジェクトが使用可能になります。
sudoは、/ etc / ldap / ldap.confファイルの設定を使用してsudoRoleオブジェクトを検索します。
uri ldap://ldap.habr.ru
sudoers_base ou=servers,dc=habr,dc=ru
sudoers_debug 0
デバッグ2をインストールすると、sudoコマンドを実行した後、LDAPで見つかったsudoと一致するオブジェクトのリストが表示されます。
ただし、これまでのところ、単一のオブジェクトはありません。
コンテナーou =サーバー、dc = habr、dc = ruを作成しました。ここには、タイプgroupOfUniqueNamesのオブジェクトを持つコンテナーサーバーを格納します。 サーバーにアクセスできるユーザーへのリンクが含まれています。たとえば、
cn =シェルユーザー、ou = dev.habr.ru、ou =サーバー、dc = habr、dc = ru
sudoのデータを保存するために、ou = sudoers、ou = dev.habr.ru、ou = servers、dc = habr、dc = ruのコンテナを作成しました。ここにはクラスsudoRoleのオブジェクトがあります。 たとえば、次のとおりです。
dn: cn=%www-data,ou=sudoers,ou=dev.habr.ru,ou=servers,dc=habr,dc=ru
objectClass: sudoRole
objectClass: top
cn: %www-data
sudoCommand: ALL
sudoHost: dev.habr.ru
sudoRunAs: www-data
sudoUser: %www-data
またはそのような:
dn: cn=developers,ou=sudoers,ou=dev.habr.ru,ou=servers,dc=habr,dc=ru
objectClass: sudoRole
objectClass: top
cn: developers
sudoCommand: ALL
sudoRunAs: ALL
sudoHost: dev.habr.ru
sudoUser: dev0
sudoUser: dev1
sudoUser: dev2
管理者の場合、別のコンテナ「groupOfUniqueNames」があります。cn= admins、ou = global、ou = servers、dc = habr、dc = ru
個別のsudoers:
dn: cn=admins,ou=sudoers,ou=global,ou=servers,dc=habr,dc=ru
objectClass: sudoRole
objectClass: top
cn: admins
sudoCommand: ALL
sudoRunAs: ALL
sudoHost: ALL
sudoUser: admin0
sudoUser: admin1
sudoUser: admin2
デフォルト設定のオブジェクトがまだあります:
dn: cn=defaults,ou=sudoers,ou=global,ou=servers,dc=habr,dc=ru
objectClass: sudoRole
objectClass: top
cn: defaults
sudoOption: ignore_local_sudoers
sudoOption: env_reset
これで、sudoを試すことができます!
コメントまたはPMでご質問にお答えします。