[Question] Starting slapd FAILED |
02/10/2010 09:14:08 (+0700) | #1 | 221966 |
|
vitcon01
Member
|
0 |
|
|
Joined: 29/04/2009 11:28:21
Messages: 306
Offline
|
|
Tôi đã tiến hành triển khai LDAP trên Linux với các bước như sau.
1.Xóa thư mục slapd.d, sử dụng file cấu hình slapd.conf.
Code:
# rm –rf /etc/openldap/slapd.d
2.. Tạo file slapd.conf.trong thư mục /etc/openldap với nội dung như sau
Code:
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
###################################################
# ldbm and/or bdb database definitions
###################################################
database bdb
suffix "dc=network,dc=com"
directory /var/lib/ldap/network.com
rootdn "cn=Manager,dc=network,dc=com"
rootpw mysecret
cachesize 10000
searchstack 8
dbnosync
dirtyread
3.Tạo file database /var/lib/ldap/network.com/DB_CONFIG với nội dung như sau.
Code:
#openLDAP: pkg/ldap/servers/slapd/DB_CONFIG,v 1.3.2.3 2007/08/31 23:13:57 quanah Exp $
# Example DB_CONFIG file for use with slapd(8) BDB/HDB databases.
#
# See Sleepycat Berkeley DB documentation
# <http://www.sleepycat.com/docs/ref/env/db_config.html>
# for detail description of DB_CONFIG syntax and semantics.
#
# Hints can also be found in the OpenLDAP Software FAQ
# <http://www.openldap.org/faq/index.cgi?file=2>
# in particular:
# <http://www.openldap.org/faq/index.cgi?file=1075>
# Note: most DB_CONFIG settings will take effect only upon rebuilding
# the DB environment.
# one 0.25 GB cache
set_cachesize 0 268435456 1
# Data Directory
#set_data_dir db
# Transaction Log settings
set_lg_regionmax 262144
set_lg_bsize 2097152
set_lg_dir /var/log/openldap-logs
# Note: special DB_CONFIG flags are no longer needed for "quick"
# slapadd(8) or slapindex(8) access (see their -q option).
4.Khởi động dịch vụ slapd
Code:
Thống báo :
Code:
Stopping slapd: [FAILED]
Starting slapd: [FAILED]
Mong nhận được sự gúp đỡ của mọi người .Cảm ơn |
|
JK - JH
()()()
LTKT - LTT |
|
|
|
[Question] Starting slapd FAILED |
02/10/2010 16:42:54 (+0700) | #2 | 221993 |
|
tranhuuphuoc
Moderator
|
Joined: 05/09/2004 06:08:09
Messages: 865
Location: Lầu Xanh
Offline
|
|
Bro gởi log của OpenLDAP lên , nó nằm ở /var/log/openldap-logs như trong tập tin cấu hình của bro.
|
|
|
|
|
[Question] Starting slapd FAILED |
02/10/2010 16:43:37 (+0700) | #3 | 221994 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
- Nên chú ý đưa thông tin về distro mình đang dùng để mọi người đỡ phải đoán
- Bạn xem lại permission của thư mục database:
Code:
ls -ld /var/lib/ldap/network.com
- Thảy init script khởi động slapd của bạn lên:
Code:
|
|
Let's build on a great foundation! |
|
|
|
[Question] Starting slapd FAILED |
02/10/2010 17:23:10 (+0700) | #4 | 222000 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
tranhuuphuoc wrote:
Bro gởi log của OpenLDAP lên , nó nằm ở /var/log/openldap-logs như trong tập tin cấu hình của bro.
Thư mục này chứa các transaction log (log.XXXXXXXXXX) dưới dạng binary chứ không phải log của service OpenLDAP.
Muốn cấu hình log cho OpenLDAP thì bạn đọc man slapd.conf, phần loglevel. |
|
Let's build on a great foundation! |
|
|
|
[Question] Starting slapd FAILED |
02/10/2010 20:27:55 (+0700) | #5 | 222010 |
|
vitcon01
Member
|
0 |
|
|
Joined: 29/04/2009 11:28:21
Messages: 306
Offline
|
|
file database em đã chmod 755 rồi.
Distro em đang dùng :Fedora 13
cat /etc/init.d/slapd
Code:
#!/bin/bash
#
# slapd This shell script takes care of starting and stopping
# ldap servers (slapd).
#
# chkconfig: - 12 73
# description: LDAP stands for Lightweight Directory Access Protocol, used \
# for implementing the industry standard directory services.
# processname: slapd
# config: /etc/openldap/slapd.conf
# pidfile: /var/run/slapd.pid
### BEGIN INIT INFO
# Provides: slapd
# Required-Start: $network $local_fs
# Required-Stop: $network $local_fs
# Should-Start:
# Should-Stop:
# Default-Start:
# Default-Stop:
# Short-Description: starts and stopd OpenLDAP server daemon
# Description: LDAP stands for Lightweight Directory Access Protocol, used
# for implementing the industry standard directory services.
### END INIT INFO
# Source function library.
. /etc/init.d/functions
# Define default values of options allowed in /etc/sysconfig/ldap
SLAPD_LDAP="yes"
SLAPD_LDAPI="no"
SLAPD_LDAPS="no"
SLAPD_URLS=""
SLAPD_SHUTDOWN_TIMEOUT=3
# OPTIONS, SLAPD_OPTIONS and KTB5_KTNAME are not defined
# Source an auxiliary options file if we have one
if [ -r /etc/sysconfig/ldap ] ; then
. /etc/sysconfig/ldap
fi
slapd=/usr/sbin/slapd
slaptest=/usr/sbin/slaptest
lockfile=/var/lock/subsys/slapd
configdir=/etc/openldap/slapd.d/
configfile=/etc/openldap/slapd.conf
pidfile=/var/run/slapd.pid
slapd_pidfile=/var/run/openldap/slapd.pid
RETVAL=0
#
# Pass commands given in $2 and later to "test" run as user given in $1.
#
function testasuser() {
local user= cmd=
user="$1"
shift
cmd="$@"
if test x"$user" != x ; then
if test x"$cmd" != x ; then
/sbin/runuser -f -m -s /bin/sh -c "test $cmd" -- "$user"
else
false
fi
else
false
fi
}
#
# Check for read-access errors for the user given in $1 for a service named $2.
# If $3 is specified, the command is run if "klist" can't be found.
#
function checkkeytab() {
local user= service= klist= default=
user="$1"
service="$2"
default="${3:-false}"
if test -x /usr/kerberos/bin/klist ; then
klist=/usr/kerberos/bin/klist
elif test -x /usr/bin/klist ; then
klist=/usr/bin/klist
fi
KRB5_KTNAME="${KRB5_KTNAMEetc/krb5.keytab}"
export KRB5_KTNAME
if test -s "$KRB5_KTNAME" ; then
if test x"$klist" != x ; then
if LANG=C $klist -k "$KRB5_KTNAME" | tail -n 4 | awk '{print $2}' | grep -q ^"$service"/ ; then
if ! testasuser "$user" -r ${KRB5_KTNAMEetc/krb5.keytab} ; then
true
else
false
fi
else
false
fi
else
$default
fi
else
false
fi
}
function configtest() {
local user= ldapuid= dbdir= file=
# Check for simple-but-common errors.
user=ldap
prog=`basename ${slapd}`
ldapuid=`id -u $user`
# Unaccessible database files.
slaptestflags=""
dbdirs=""
if [ -d $configdir ]; then
for configfile in `ls -1 $configdir/cn\=config/olcDatabase*.ldif`; do
dbdirs=$dbdirs"
"`LANG=C egrep '^olcDbDirectory[[:space:]]*:[[:space:]]+[[:print:]]+$' $configfile | sed 's,^olcDbDirectory: ,,'`
done
elif [ -f $configfile ]; then
dbdirs=`LANG=C egrep '^directory[[:space:]]+' $configfile | sed 's,^directory[[:space:]]*,,'`
else
exit 6
fi
for dbdir in $dbdirs; do
if [ ! -d $dbdir ]; then
exit 6
fi
for file in `find ${dbdir}/ -not -uid $ldapuid -and \( -name "*.dbb" -or -name "*.gdbm" -or -name "*.bdb" -or -name "__db.*" -or -name "log.*" -or -name alock \)` ; do
echo -n $"$file is not owned by \"$user\"" ; warning ; echo
done
if ! test -s ${dbdir}/id2entry.dbb ; then
if ! test -s ${dbdir}/id2entry.gdbm ; then
if ! test -s ${dbdir}/id2entry.bdb ; then
slaptestflags="-u"
fi
fi
fi
done
# Unaccessible keytab with an "ldap" key.
if checkkeytab $user ldap ; then
file=${KRB5_KTNAMEetc/krb5.keytab}
echo -n $"$file is not readable by \"$user\"" ; warning ; echo
fi
# Unaccessible TLS configuration files.
if [ -d $configdir ]; then
tlsconfigs=`LANG=C awk '/^olcTLS/ {
while (/^olcTLS/) {
if (/^olc(TLSCertificateKeyFile|TLSCertificateFile|TLSCACertificateFile)[ \t]*:[\t]*/) {
do { printf gensub(/^ /,"",1); getline } while (/^ /)
printf "\n" ;
}
else break;
}
}' $configdir/cn\=config.ldif | awk '{print $2}'`
elif [ -f $configfile ]; then
tlsconfigs=`LANG=C egrep '^(TLSCACertificateFile|TLSCertificateFile|TLSCertificateKeyFile)[[:space:]]+' $configfile | awk '{print $2}'`
fi
for file in $tlsconfigs ; do
if ! testasuser $user -r $file ; then
echo -n $"$file is not readable by \"$user\"" ; warning ; echo
fi
done
# Check the configuration file.
slaptestout=`/sbin/runuser -m -s "$slaptest" -- "$user" $slaptestflags 2>&1`
slaptestexit=$?
# slaptestout=`echo $slaptestout 2>/dev/null | grep -v "config file testing succeeded"`
# print warning if slaptest passed but reports some problems
if test $slaptestexit == 0 ; then
if echo "$slaptestout" | grep -v "config file testing succeeded" >/dev/null ; then
echo -n $"Checking configuration files for $prog: " ; warning ; echo
echo "$slaptestout"
fi
fi
# report error if configuration file is wrong
if test $slaptestexit != 0 ; then
echo -n $"Checking configuration files for $prog: " ; failure ; echo
echo "$slaptestout"
if /sbin/runuser -m -s "$slaptest" -- "$user" "-u" > /dev/null 2> /dev/null ; then
#dirs=`LANG=C egrep '^directory[[:space:]]+[[:print:]]+$' $configfile | awk '{print $2}'`
for directory in $dbdirs ; do
if test -r $directory/__db.001 ; then
echo -n $"stale lock files may be present in $directory" ; warning ; echo
fi
done
fi
exit 6
fi
}
function start() {
[ -x $slapd ] || exit 5
[ `id -u` -eq 0 ] || exit 4
configtest
# Define a couple of local variables which we'll need. Maybe.
user=ldap
prog=`basename ${slapd}`
harg="$SLAPD_URLS"
if test x$SLAPD_LDAP = xyes ; then
harg="$harg ldap:///"
fi
if test x$SLAPD_LDAPS = xyes ; then
harg="$harg ldaps:///"
fi
if test x$SLAPD_LDAPI = xyes ; then
harg="$harg ldapi:///"
fi
# Start daemons.
echo -n $"Starting $prog: "
daemon --pidfile=$pidfile --check=$prog ${slapd} -h "\"$harg\"" -u ${user} $OPTIONS $SLAPD_OPTIONS
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
touch $lockfile
ln $slapd_pidfile $pidfile
fi
echo
return $RETVAL
}
function stop() {
# Stop daemons.
prog=`basename ${slapd}`
[ `id -u` -eq 0 ] || exit 4
echo -n $"Stopping $prog: "
# This will remove pid and args files from /var/run/openldap
killproc -p $slapd_pidfile -d $SLAPD_SHUTDOWN_TIMEOUT ${slapd}
RETVAL=$?
# Now we want to remove lock file and hardlink of pid file
[ $RETVAL -eq 0 ] && rm -f $pidfile $lockfile
echo
return $RETVAL
}
# See how we were called.
case "$1" in
configtest)
configtest
;;
start)
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
status)
status -p $pidfile ${slapd}
RETVAL=$?
;;
restart|force-reload)
stop
start
RETVAL=$?
;;
condrestart|try-restart)
status -p $pidfile ${slapd} > /dev/null 2>&1 || exit 0
stop
start
;;
usage)
echo $"Usage: $0 {start|stop|restart|force-reload|status|condrestart|try-restart|configtest|usage}"
RETVAL=0
;;
*)
echo $"Usage: $0 {start|stop|restart|force-reload|status|condrestart|try-restart|configtest|usage}"
RETVAL=2
esac
exit $RETVAL
Tiện thể anh quanta cho em xin một vài cuốn tìa liệu linux(tất cả nếu có thể), hoặc tên sách.Cảm ơn |
|
JK - JH
()()()
LTKT - LTT |
|
|
|
[Question] Starting slapd FAILED |
02/10/2010 20:32:56 (+0700) | #6 | 222011 |
|
vitcon01
Member
|
0 |
|
|
Joined: 29/04/2009 11:28:21
Messages: 306
Offline
|
|
quanta wrote:
tranhuuphuoc wrote:
Bro gởi log của OpenLDAP lên , nó nằm ở /var/log/openldap-logs như trong tập tin cấu hình của bro.
Thư mục này chứa các transaction log (log.XXXXXXXXXX) dưới dạng binary chứ không phải log của service OpenLDAP.
Muốn cấu hình log cho OpenLDAP thì bạn đọc man slapd.conf, phần loglevel.
-->em đã thêm 2 dòng vào file cấu hình slapd.conf
Code:
logfile /var/log/openldap
loglevel 256
256:cho biết kết nối, hoạt động và kết quả của ldap, họ bảo nên dùng tham số này, nhưng không thấy tín hiệu gì cho việc này. |
|
JK - JH
()()()
LTKT - LTT |
|
|
|
[Question] Starting slapd FAILED |
02/10/2010 21:20:42 (+0700) | #7 | 222014 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
vitcon01 wrote:
file database em đã chmod 755 rồi.
Vậy còn owner và group thì sao?
vitcon01 wrote:
Tiện thể anh quanta cho em xin một vài cuốn tìa liệu linux(tất cả nếu có thể), hoặc tên sách.Cảm ơn
Bạn tìm lại trên diễn đàn nhé.
vitcon01 wrote:
quanta wrote:
Thư mục này chứa các transaction log (log.XXXXXXXXXX) dưới dạng binary chứ không phải log của service OpenLDAP.
Muốn cấu hình log cho OpenLDAP thì bạn đọc man slapd.conf, phần loglevel.
-->em đã thêm 2 dòng vào file cấu hình slapd.conf
Code:
logfile /var/log/openldap
loglevel 256
256:cho biết kết nối, hoạt động và kết quả của ldap, họ bảo nên dùng tham số này, nhưng không thấy tín hiệu gì cho việc này.
man page của bạn có option logfile à? Chỉnh loglevel xong còn cần cấu hình syslog nữa:
Code:
# echo -e "local4.*\t\t\t\t\t\t/var/log/openldap.log" >> /etc/syslog.con
# service syslog restart
|
|
Let's build on a great foundation! |
|
|
|
[Question] Starting slapd FAILED |
02/10/2010 21:27:36 (+0700) | #8 | 222015 |
|
vitcon01
Member
|
0 |
|
|
Joined: 29/04/2009 11:28:21
Messages: 306
Offline
|
|
Vậy còn owner và group thì sao?
Code:
[root@localhost ~]# ls -l /var/lib/ldap/network.com/
total 4
-rwxr-xr-x. 1 root root 903 Sep 8 20:28 DB_CONFIG
em đã thử chạy lệnh này
# service syslog restart
--->nhưng báo không tồn tại dịch vụ này
[root@localhost ~]# service syslog restart
syslog: unrecognized service
|
|
JK - JH
()()()
LTKT - LTT |
|
|