# 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 で検索してみましょう。