# apt-get install slapd Directory initialization method: auto Directory suffix style: domain or host ※customだとslapd.confの権限のadmin用dnが空になるというバグがあります。 Enter the domain name: hoehoe.japan Admin password, Verify password: 12345678 ※あとで読み取り専用ユーザを作るので、 マシンのrootと同じでもいいと思います。 Replicate to another LDAP server: Noで設定ファイル/etc/ldap/slapd.confと初期データベースが作成されます。 slapcatでデータベースの中身が確認できます。
# slapcat dn: dc=hoehoe,dc=domain objectClass: dcObject dc: hoehoe dn: cn=admin,dc=hoehoe,dc=japan objectClass: organizationalRole objectClass: simpleSecurityObject cn: admin description: LDAP administrator userPassword:: qwertyuiop= dn: ou=People,dc=hoehoe,dc=japan objectClass: organizationalUnit ou: People dn: ou=Roaming,dc=hoehoe,dc=japan objectClass: organizationalUnit ou: Roaming現在4つのオブジェクトがあるのがわかると思います。 なお、slapcatは直接データベースファイルを覗くので、 slapdが起動していない状態でも利用できます。
もし設定が気に入らない時は、 dpkg -P slapdでslapdを削除して再インストールするのが早計ですが、 次のようにしても修正できます。 たとえばパスワードを98765432に変更したい場合、 通常はldappasswdというクライアントを用いて修正しますが、 前のパスワードを忘れてしまった、などの場合には、 サーバ側のデータベースを直接修正します。
# /etc/init.d/slapd stop # slapcat > cur.ldif # slappasswd -h "{CRYPT}" userPasswordに設定する文字列を得るユーティリティ New password: 98765432 Re-enter new password: 98765432 {CRYPT}5TbEUhWdAeBS. # vi cur.ldif dn: dc=hoehoe,dc=domain objectClass: dcObject dc: hoehoe dn: cn=admin,dc=hoehoe,dc=japan objectClass: organizationalRole objectClass: simpleSecurityObject cn: admin description: LDAP administrator userPassword: {CRYPT}5TbEUhWdAeBS. ↑上で得られたパスワードテキスト。: はひとつ。 dn: ou=People,dc=hoehoe,dc=japan objectClass: organizationalUnit ou: People dn: ou=Roaming,dc=hoehoe,dc=japan objectClass: organizationalUnit ou: Roaming # rm /var/lib/ldap/*.dbb # slapadd -l cur.ldif # slapcat ...確認... # /etc/init.d/slapd start
# apt-get install ldap-utils普通にldapsearchを起動した場合に用いられるデフォルト値を /etc/ldap/ldap.confに設定します。
# vi /etc/ldap/ldap.conf # # LDAP Defaults # # See ldap.conf(5) for details # This file should be world readable but not world writable. #BASE dc=example, dc=com #URI ldap://ldap.example.com ldap://ldap-master.example.com:666 HOST 127.0.0.1 接続するldapサーバ BASE dc=hoehoe,dc=japan デフォルトサーチベース #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never
# ldapsearch ldap_sasl_interactive_bind_s: No such attribute…これはldapsearchが標準でSASL接続をするためです。SASL? でも今回はローカルからldapを利用するのが 目的なのでSASLは今後の課題ということで。
# ldapsearch -x version: 2 # # filter: (objectclass=*) # requesting: ALL # # hoehoe, japan dn: dc=hoehoe,dc=japan objectClass: dcObject dc: hoehoe # admin, hoehoe, japan dn: cn=admin,dc=hoehoe,dc=japan objectClass: organizationalRole objectClass: simpleSecurityObject cn: admin description: LDAP administrator # People, hoehoe, japan dn: ou=People,dc=hoehoe,dc=japan objectClass: organizationalUnit ou: People # Roaming, hoehoe, japan dn: ou=Roaming,dc=hoehoe,dc=japan objectClass: organizationalUnit ou: Roaming # search result search: 2 result: 0 Success # numResponses: 5 # numEntries: 4ldapsearchそのままで起動した場合はanonymousとして認証されるので 権限のないフィールド(userPassword)などを表示させることはできません。 ldapsearchは通常のLDAPクライアントなので、slapcatと違い一般ユーザでも実行できます。
ldapを操作できるldapクライアントとしてはGUIなものなど色々ありますので、 apt-cache search ldap で検索してみましょう。