Ubuntu 12.04 LTS も出たのでさくらVPSで色々とセットアップ中です。Unix のユーザ管理は、LDAPで行うようにし、かつLDIFを一から書くのは面倒なので LDAP Account Managerを使うようにしました。その時のメモです。
諸々のパッケージをインストール
# apt-get install slapd
# apt-get install ldap-account-manager
# apt-get install libnss-ldap
# apt-get install ldap-utils
LDAP サーバとLDAP Account Managerの再セットアップ時のコマンド
上記インストール時にも同様の設定入力はあります。
# dpkg-reconfigure slapd
# dpkg-reconfigure ldap-account-manager
LDAP Account Manager
設定で指定したマスターパスワードと標準のlamプロファイル(デフォルトパスワード:lam)の状態でセットアップされます。
Apache2を使うようにインストールしていれば、http://<ホスト>/lam/ でブラウザから操作できます。
右上の「LAM configuration」から「Edit server profiles」で「ldm」プロファイル設定に入ります。
[General settings]では「Security settings」のcn=Manager〜の部分をslapdのセットアップで指定した管理ユーザにします。
[Account types]では Samba は使わないのでこれを Remove します。
その他 dc も自分のドメインに合わせてそれぞれ設定します。
トップページから管理ユーザのパスワードでログインして、Unixで使うグループとユーザーをそれぞれ追加します。
※ユーザーのパスワードはセットしてからSaveしないと保存されないので注意。
さらにバインドユーザー proxyuserを、「Tree View」から「import」で下記のLDIFを使って作成します。
dn: cn=proxyuser,dc=mydomain,dc=com
cn: proxyuser
objectclass: userPassword
userPassword: {SSHA}XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
※パスワードは、slappasswd コマンドで生成しておきます。
バインドユーザーの設定
/etc/ldap.conf の binddn と bindpw をそれぞれ先ほど作成したバインドユーザーのものにします。また pam_password を「exop」にします。
確認
/etc/nsswitch.conf の passwd, group, shadowが「compat ldap」か確認します。
$ getent passwd <追加したユーザーのuid>
$ getent group <追加したグループのgid>
で引けるかどうか確認。
$ su <追加したユーザーのuid>
Password:
追加したユーザのパスワードが使えるか確認。
自分でパスワード変更
ログインユーザーが自身のパスワードを変更できるか確認すると、
$ passwd
Enter login(LDAP) password:
passwd: Authentication information cannot be recovered
passwd: password unchanged
のようにエラーになってしまいました。
/etc/pam.d/common-password の use_authtok を消して slapd を再起動します。
# here are the per-package modules (the "Primary" block)
password \[success=2 default=ignore\] pam_unix.so obscure sha512
#password \[success=1 user\_unknown=ignore default=die\] pam\_ldap.so use\_authtok try\_first_pass
password \[success=1 user\_unknown=ignore default=die\] pam\_ldap.so try\_first\_pass
以上、メモ終わり。