Ubuntu のユーザ管理を LDAP Account Manager でするようにした
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
以上、メモ終わり。