slapd.confが無い
随分前の話ですが、Fedora12にOpenLDAPを入れたらslapd.confが無くて困ったので忘れないようにまとめ。
多くの解説サイトを見ると、OpenLDAPをインストールしたらまずslapd.confというファイルに設定を書きこんでいくとあります。
しかしそのファイルが無い!私が確認した環境はFedora12とUbuntu10.10ですが、どちらも無い!
そこでいろいろと調べていたところ、どうやらOpenLDAP2.3からはConfiguration Backendという方式になった様子。
なんでも、従来slapd.confへ記述していた設定内容をすべてデータベース化してしまうのだとか。
つまり、設定をすべてLDIFファイルに記述して、ldapaddコマンドによって追加することで初めて設定が適用されるようです。
これでslapd.confが無いのも納得。
具体的なLDIFファイルの中身については別のエントリーでUbuntu10.10で試した物を紹介しますのでそちらもよろしければ。
ちなみに、このConfiguration Backendですが絶対に従わなければならないわけでも無いようです。
私の場合、Fedora12では勝手にslapd.confを作成してOpenLDAP起動時にコマンドで指定して設定を読み込ませてました。
以下その手順。
まずはじめに暗号化したパスワードを取得。
# slappasswd
コマンドを実行するとパスワードの入力が促されるので任意のものを入力。
そして{SSHA}ではじまる文字列が出力されたらそれをコピーしてどこかにとっておく。
続いてslapd.confの作成。
/etc/openldap/slapd.conf に作る。中身は以下。
include /etc/openldap/schema/corba.schema include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/duaconf.schema include /etc/openldap/schema/dyngroup.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/java.schema include /etc/openldap/schema/misc.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/openldap.schema include /etc/openldap/schema/ppolicy.schema include /etc/openldap/schema/collective.schema allow bind_v2 pidfile /var/run/openldap/slapd.pid argsfile /var/run/openldap/slapd.args ####################################################################### # ldbm and/or bdb database definitions ####################################################################### database bdb suffix "dc=example,dc=com" checkpoint 1024 15 rootdn "cn=Manager,dc=example,dc=com" rootpw {SSHA} directory /var/lib/ldap index objectClass eq,pres index ou,cn,mail,surname,givenname eq,pres,sub index uidNumber,gidNumber,loginShell eq,pres index uid,memberUid eq,pres,sub index nisMapName,nisMapEntry eq,pres,sub database monitor access to * by dn.exact="cn=Manager,dc=example,dc=com" read by * none access to attrs=userPassword by self write by dn="cn=Manager,dc=example,dc=com" write by anonymous auth by * none access to * by dn="cn=Manager,dc=example,dc=com" write by self write by * read
"dc=example,dc=com"や"cn=Manager,dc=example,dc=com"となっている部分については任意のドメイン名を指定。
rootpw {SSHA} の部分については先ほどコピーしてとっておいたものを貼り付け。
OpenLDAPを以下のコマンドから起動することで設定ファイルを読み込んで起動してくれる。
# /usr/sbin/slapd -f /etc/openldap/slapd.conf