diff options
author | Edwin Groothuis <edwin@FreeBSD.org> | 2003-08-30 09:11:51 +0000 |
---|---|---|
committer | Edwin Groothuis <edwin@FreeBSD.org> | 2003-08-30 09:11:51 +0000 |
commit | 4eea42bbfa65e39298536844b2328708a0c0a77b (patch) | |
tree | 40aa64ac3c94c078fe5577a109c083041176e326 /net/openldap22-server/files/slapd.sh | |
parent | 4950c2a1d71dfae40080ffced1cbd60966492c00 (diff) |
Notes
Diffstat (limited to 'net/openldap22-server/files/slapd.sh')
-rw-r--r-- | net/openldap22-server/files/slapd.sh | 60 |
1 files changed, 40 insertions, 20 deletions
diff --git a/net/openldap22-server/files/slapd.sh b/net/openldap22-server/files/slapd.sh index f9d970cfbd22..d9c1c63100ef 100644 --- a/net/openldap22-server/files/slapd.sh +++ b/net/openldap22-server/files/slapd.sh @@ -21,7 +21,7 @@ # by default slapd runs under the non-privileged user id `ldap'. If you # want to run slapd as root, override this in /etc/rc.conf with # -#slapd_owner= +#slapd_owner="DEFAULT" # . %%RC_SUBR%% @@ -37,47 +37,67 @@ required_files=%%PREFIX%%/etc/openldap/slapd.conf start_precmd=start_precmd start_postcmd=start_postcmd +# extract user and group, adjust ownership of directories and database + start_precmd() { - if [ x"$slapd_owner" != x ]; then - chown "${slapd_owner}" "%%LDAP_RUN_DIR%%" - chown -RL "${slapd_owner}" "%%LOCALSTATEDIR%%/openldap-data" - chown "${slapd_owner}" "%%PREFIX%%/etc/openldap/slapd.conf" + case x"$slapd_owner" in + x|x[Nn][Oo][Nn][Ee]|x[Dd][Ee][Ff][Aa][Uu][Ll][Tt]) + ;; + x*) + chown "$slapd_owner" "%%LDAP_RUN_DIR%%" + chown -RL "$slapd_owner" "%%DATABASEDIR%%" + chown "$slapd_owner" "%%PREFIX%%/etc/openldap/slapd.conf" slapd_ownername=`expr //"$slapd_owner" : //'\([^:]*\)'` slapd_groupname=`expr //"$slapd_owner" : //'.*:\([^:]*\)'` - if [ x"$slapd_ownername" != x ]; then + if [ -n "$slapd_ownername" ]; then rc_flags="$rc_flags -u $slapd_ownername" fi - if [ x"$slapd_groupname" != x ]; then + if [ -n "$slapd_groupname" ]; then rc_flags="$rc_flags -g $slapd_groupname" fi - fi + ;; + esac } +# adjust ownership of created unix sockets + start_postcmd() { - for socket in ${slapd_sockets}; do + for socket in $slapd_sockets; do for seconds in 1 2 3 4 5; do - test -e ${socket} && break + [ -e "$socket" ] && break sleep 1 done - if [ -S ${socket} ]; then - if [ x"$slapd_owner" != x ]; then - chown "${slapd_owner}" ${socket} - fi - chmod "${slapd_sockets_mode}" ${socket} + if [ -S "$socket" ]; then + case x"$slapd_owner" in + x|x[Nn][Oo][Nn][Ee]|x[Dd][Ee][Ff][Aa][Uu][Ll][Tt]) + ;; + x*) + chown "$slapd_owner" "$socket" + ;; + esac + chmod "$slapd_sockets_mode" "$socket" fi done } -slapd_enable="NO" -slapd_flags= +# set defaults + +[ -z "$slapd_enable" ] && slapd_enable=NO +[ -z "$slapd_flags" ] && slapd_flags= -slapd_owner=ldap:ldap -slapd_sockets= -slapd_sockets_mode=666 +[ -z "$slapd_owner" ] && slapd_owner=ldap:ldap +[ -z "$slapd_sockets" ] && slapd_sockets= +[ -z "$slapd_sockets_mode" ] && slapd_sockets_mode=666 load_rc_config $name + +if [ -n "$slapd_args" ]; then + warn "slapd_args is deprecated, use slapd_flags" + slapd_flags="$slapd_args" +end + run_rc_command "$1" |