ティップネスが夏季休館な上に連日残業ばかりしていると、ブログのネタも仕事関連になる。。。。。。
【概要】
RHEL 8でLDAPのユーザをOSのユーザとして認識させる。
【環境】
RedHat Enterprise Linux 8.3。
他は特に条件なし。
【設定】
SSSDを利用するだけ。
1./etc/sssd/sssd.confを以下の内容で新規に作成する。
このファイルはデフォルトでは存在しないので全部自分で記述する必要あり。
[sssd] services = nss, pam domains = example [nss] filter_groups = root filter_users = root [domain/example] id_provider = ldap # LDAPサーバ。カンマ区切り。障害を考慮するが2台以上設定したい。 ldap_uri = ldaps://ldap1.example.jp, ldaps://ldap2.example.jp # BASE DN ldap_search_base = dc=example,dc=jp # 管理者のCNとパスワード ldap_default_bind_dn = cn=ldap,dc=example,dc=jp ldap_default_authtok = HIMITSU # 証明書の検証をしない(LDAPサーバの証明書が自己証明のため)。本物の証明書を使っているならこの設定は不要。 ldap_tls_reqcert = never
2.パーミッションを設定
sssdの仕様として600でないと動作しない。
# chmod 600 /etc/sssd/sssd.conf
3.現在のLinux認証が何であるかを確認。
# authselect current
プロファイル ID: sssd ←sssdである
有効な機能:
- with-fingerprint
- with-silent-lastlog
4.Linux認証をsssdに切り替える。
すでにsssdの場合は実行する必要なし。そうでない場合だけ実行する。
# authselect select sssd --force バックアップは /var/lib/authselect/backups/2021-08-31-06-03-52.I1g0kQ に保存されました プロファイル "sssd" が設定されました。 以下の nsswitch マップはプロファイルで上書きされます: - passwd - group - netgroup - automount - services Make sure that SSSD ser
5.補足
選択可能なLinux認証一覧を表示する。
# authselect list - minimal Local users only for minimal installations - nis Enable NIS for system authentication - sssd Enable SSSD for system authentication (also for local users only) - winbind Enable winbind for system authentication
6./etc/nsswitch.confを修正
どういう順番にするかはお好みで。
passwd: files sss systemd group: files sss systemd
7.サービス再起動
# systemctl restart sssd.service
8.動作確認
/etc/passwdに存在しないがLDAPに存在するユーザに対して適当な確認を実施する。
# id testuser uid=1234567(testuser) gid=9999(users) groups=9999(users)
9.コメント
- RHEL 7以前だと、分かりにくいauthconfigコマンドを利用した上に、設定が非常に複雑でやる気が起こらなかったけど、RHEL 8だとこんなに簡単
- 設定のポイントとなるsssd.confは、設定項目はもっとたくさんあるが、今回記載した内容だけあればとりあえず問題なく動く。
- ホームディレクトリを自動作成したい場合は、そういうPAMモジュールを使えばよいらしい。ググると出てくる。うちでは使わなかったけど。
- すでにLDAPサーバが稼働しているとか、複数のサーバで同じユーザを大量に作りたいとか、そういう時に便利