前回までで、認証はできるようになったが、ログインしたユーザのホームディレクトリが無いという問題があったので、それの対応などを行う。
SSSDの設定を追加
すでに導入済みとなる、oddjob_mkhomedirの設定を、/etc/sssd/sssd.confに追記する。
[domain/example.local] override_homedir = /home/%d/%u [nss] fallback_homedir = /home/%u
%dは、ドメイン名、%uはユーザ名が補間されて、初回ログイン時に自動的にディレクトリが作成されるようになる。
設定を変更したら、sssdを再起動する。
# systemctl restart sssd.service
それでは、再度ログインしてみる。
% ssh aduser@xx.yy.zz.100 aduser@xx.yy.zz.100's password: Creating home directory for aduser. Last login: Tue Sep 9 16:10:25 2014 from xxx.yyy.zzz.241 [aduser@linux1 ~]$ pwd /home/example.local/aduser
想定通り、ホームディレクトリが作成された。
デフォルトのシェルを指定する
ADドメインユーザは、LDAPv3スキーマのloginShell属性でシェルの定義を行う。しかし、AD側で一々設定するのは面倒なので、SSSD側の設定で実現する。
[domain/example.local] default_shell = /bin/bash [nss] shell_fallback = /bin/sh allowed_shells = /bin/bash
ちなみに、/etc/passwdにエントリが無いため、chshを実行してもシェルを変更できない。
[aduser@linux1]~% chsh aduser のシェルを変更します。 新しいシェル [/bin/zsh]: /bin/bash パスワード: chsh: user "aduser" does not exist.
とりあえず、ユーザがADで認証してSSHログインできるところまでできた。
元記事はこちらです。
「[Linux][Windows] RHEL7をActive Directory on Windows Server 2012 R2でユーザ認証させる (4)」