Ubuntu 12.04 LTS も出たのでさくらVPSで色々とセットアップ中です。Unix のユーザ管理は、LDAPで行うようにし、かつLDIFを一から書くのは面倒なので LDAP Account Managerを使うようにしました。その時のメモです。

諸々のパッケージをインストール
1
2
3
4
# apt-get install slapd
# apt-get install ldap-account-manager
# apt-get install libnss-ldap
# apt-get install ldap-utils

LDAP サーバとLDAP Account Managerの再セットアップ時のコマンド

上記インストール時にも同様の設定入力はあります。

1
2
# 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を使って作成します。

1
2
3
4
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」か確認します。

1
2
$ getent passwd <追加したユーザーのuid>
$ getent group <追加したグループのgid>

で引けるかどうか確認。

1
2
$ su <追加したユーザーのuid>
Password:

追加したユーザのパスワードが使えるか確認。

自分でパスワード変更

ログインユーザーが自身のパスワードを変更できるか確認すると、

1
2
3
4
$ passwd
Enter login(LDAP) password:
passwd: Authentication information cannot be recovered
passwd: password unchanged

のようにエラーになってしまいました。
/etc/pam.d/common-password の use_authtok を消して slapd を再起動します。

1
2
3
4
# 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

以上、メモ終わり。