LDAP設定していこうかな

さて、インストールが終わったので設定をしていこうかなと思います。
しかし、LDAPの本を読んでみたものの結構概念的なとこが複雑です(´・ω・`)。
汎用的になるようにしすぎて複雑になってる感じかな。
ま、とりあえず習うより慣れろということで、最終的にはSambaのアカウントを管理するつもりですがまずはlinux自体の一般ユーザアカウントをLDAPの管理下に置くようにしてみようと思います。
さて、まずは起動ですかね。そのまえにconfigのディレクトリをソフトウェアRaidの上に移そうと思います。


# mkdir -p /mirror/conf/ldap
# cp -a /usr/local/services/ldap/etc/openldap/* /mirror/conf/ldap/
# cd /usr/local/services/ldap/etc
# mv openldap /var/tmp
# ln -s /mirror/conf/ldap openldap

ファイルを移動して元々configのあったディレクトリをシンボリックリンクにしました。試しに起動してみましょうか、と思ったけど/etc/init.dの下に起動スクリプトはなし。とりあえず直接たたけば良いみたいなので叩いてみました。


# /usr/local/services/ldap/libexec/slapd
# ps auxww | grep slapd
root 5120 0.0 0.0 3896 648 ttyS0 R+ 07:05 0:00 grep slapd

・・・起動してないぽぃ(´・ω・`)
どうやらslaptestというコマンドでconfigのチェックができるそうなので叩いてみました。


# /usr/loca/services/ldap/sbin/slaptest
bdb_db_open: Warning - No DB_CONFIG file found in directory /usr/local/services/ldap/var/openldap-data: (2)

ふむ、DB_CONFIGがなくてWarningが出てますね。
お、本を良く見るとちゃんとDB_CONFIG.exampleがあるからコピーしやんせと書いてあります。
ということでetc/openldap以下にあるexampleをvar/openldap-data以下にコピーしました。


# cp -a etc/openldap/DB_CONFIG.example var/openldap-data/DB_CONFIG
# /usr/local/services/ldap/sbin/slaptest
cnfig file testing succeeded

うむ。よさげ。
さてさて再度起動してみますかな。
と、その前に毎回フルパスでコマンド打つのはめんどくさいので/etc/bashrcを編集してPATHを追加しておきました。割愛しますが。

さて、起動してみます。


# /usr/local/services/ldap/libexec/slapd
# ps auxww | grep slapd
root 5151 0.0 0.1 10112 2180 ? Ssl 07:13 0:00 /usr/local/services/ldap/libexec/slapd

おぉ。あがったぽい(n‘∀‘)η *・゜
コマンドで動作確認ができるそうなので試してみます。


# ldapsearch -v -x -b '' -s base +

ldap_initialize( )
filter: (objectclass=*)
requesting: +
# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: +
#
〜略〜

大丈夫そうですね。

ついでなので、起動スクリプトも書いちゃいました。


/etc/init.d/slapd

#!/bin/sh
#
# slapd This shell script takes care of starting and stopping
# slapd
# chkconfig: - 20 80
# description: slapd is a LDAP daemon that offers directory service
#

LDAPDIR=/usr/local/services/ldap
PIDFILE=$LDAPDIR/var/run/slapd.pid
PROG=$LDAPDIR/libexec/slapd

PATH=$LDAPDIR/sbin:$LDAPDIR/bin:/usr/bin:/bin:/usr/sbin:/sbin

. /etc/init.d/functions

start() {
echo -n $"Starting $PROG: "
daemon $PROG
retval=$?
echo
return $retval
}

stop() {
echo -n $"Stopping $PROG: "
killproc $PROG
retval=$?
echo
return $retval
}

case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $PROG
RETVAL=$?
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
esac

exit $?

これで設定をいれていく下地が出来ました。