0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AlmaLinux 9 + 389ds でユーザとsudoersを管理する

Last updated at Posted at 2023-02-24

AlmaLinux 9でLDAPの設定をやろうとしてみたら、浦島太郎状態で七転八倒したので、引っかかったところだけをざっくりメモ

389dsの初期設定

このへんを眺めながら、サーバを作って、memberof, referential-integrity などのプラグインを有効にし、Let's EncryptでTLS証明書を取ってldapsを話せるようにする。

sudoers用のLDAP設定を作る

こんな感じのldifでsudoers用のOUおよびそれに対するACI(アクセス許可リスト)を作る

dn: ou=sudoers,dc=(どめいん)
objectClass: top
objectClass: organizationalUnit
ou: sudoers
aci: (targetattr="cn || sudoUser || sudoHost || sudoCommand || sudoRunAs || su
 doRunAsUser || sudoRunAsGroup || sudoOption || sudoNotBefore || sudoNotAfter
 || sudoOrder || nsUniqueId || description || objectClass")(targetfilter="(obj
 ectClass=sudoRole)")(version 3.0; acl "Enable anyone sudoRole read"; allow (r
 ead, search, compare)(userdn="ldap:///anyone");)

あとはsudoerのエントリをそれっぽく書く

dn: cn=%staff,ou=sudoers,dc=(どめいん)
objectClass: top
objectClass: sudoRole
cn: %staff
sudoUser: %staff
sudoHost: ALL
sudoCommand: ALL

そして、対応するグループを作ってユーザを突っ込む

dsidm -b dc=(どめいん) (インスタンス名) posixgroup create --cn staff --gidNumber (GID)
dsidm -b dc=(どめいん) (インスタンス名) group add_member staff uid=(ユーザ名),ou=people,dc=(どめいん)

ちなみに、ユーザの作成は直接ldifを書かずに、こんな感じでdsidmでやることを想定

dsidm -b dc=(どめいん) (インスタンス名) user create --uid (ログイン名) --cn "(フルネーム)" --displayName "(フルネーム)" --homeDirectory "/home/(ログイン名)" --uidNumber -1 --gidNumber (Primary GID)
dsidm -b dc=(どめいん) (インスタンス名) account reset_password uid=(ログイン名),ou=people,dc=(どめいん)

クライアント側の設定

sssd.conf は、世の中の他のソフトのパッケージと違い、雛型もなければ自動生成するコマンドとかもないので、涙目になりながらでっちあげる。なお、パーミッションは 600 にしておかないと sssd が起動してくれない。

[sssd]
services = nss, pam, sudo
domains = default

[domain/default]
id_provider = ldap
ldap_uri = ldaps://(さーばー)
ldap_search_base = dc=(どめいん)
ldap_schema = rfc2307bis
sudo_provider = ldap
ldap_sudo_search_base = ou=sudoers,dc=(どめいん)
enumerate = true

ポイントは、ldap_schema = rfc2307bis、これがないと、上記で作ったsudoers用のsupplemental groupをsssdがちゃんと認識してくれない。

  • memberUID をちゃんと管理するldifを書けばいいんだろうけど、やり方分からん

また、enumerate = true を入れておくと、getent passwdとかでユーザリストを見られるようになる。この辺はポリシー次第。

/etc/openldap/ldap.confにも、URIとBASEを適当に設定する。

あとは、authselectによろしく設定してもらう。

dnf -y install sssd-ldap
authselect select sssd with-sudo --force
systemctl restart sssd
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?