initial commit of file from CVS for e-smith-ldap on Wed 12 Jul 08:58:23 BST 2023
This commit is contained in:
54
root/sbin/e-smith/systemd/ldap-prepare
Normal file
54
root/sbin/e-smith/systemd/ldap-prepare
Normal file
@@ -0,0 +1,54 @@
|
||||
#! /bin/sh
|
||||
|
||||
|
||||
domain=$(/sbin/e-smith/config get DomainName)
|
||||
ldif="/home/e-smith/db/ldap/$domain.ldif"
|
||||
|
||||
if [ -e /etc/openldap/ldif ]
|
||||
then
|
||||
old_ldif=$(readlink /etc/openldap/ldif)
|
||||
if [ "$old_ldif" != "$ldif" ]
|
||||
then
|
||||
# The domain name has changed, so we need to delete
|
||||
# the old directory contents. We still have the old
|
||||
# dump.
|
||||
mv -f $old_ldif $ldif
|
||||
find /var/lib/ldap -type f | xargs rm -f
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -f /var/lib/ldap/nextid.dbb ]
|
||||
then
|
||||
# We are upgrading from an earlier version which used
|
||||
# ldbm backend format. Delete the backend files, and
|
||||
# restore from ldif
|
||||
find /var/lib/ldap -type f | xargs rm -f
|
||||
fi
|
||||
|
||||
# Set up symlink for ldap dump at shutdown
|
||||
ln -sf $ldif /etc/openldap/ldif
|
||||
|
||||
/sbin/e-smith/expand-template /var/lib/ldap/DB_CONFIG
|
||||
|
||||
# Make sure we use the slapd.conf file instead of the new slapd.d
|
||||
touch /etc/openldap/slapd.d/unused
|
||||
find /etc/openldap/slapd.d/ -mindepth 1 -maxdepth 1 -not -name unused -exec rm -rf {} \;
|
||||
/sbin/e-smith/expand-template /etc/openldap/slapd.conf
|
||||
|
||||
# Prime directory if required
|
||||
if [ \! -f /var/lib/ldap/id2entry.bdb ]
|
||||
then
|
||||
if [ -e /etc/openldap/ldif ]
|
||||
then
|
||||
/sbin/e-smith/ldif-fix -i /etc/openldap/ldif | setuidgid ldap slapadd -c
|
||||
else
|
||||
/sbin/e-smith/ldif-fix -i /dev/null | setuidgid ldap slapadd -c
|
||||
fi
|
||||
else
|
||||
setuidgid ldap /usr/bin/db_recover -v -h /var/lib/ldap
|
||||
fi
|
||||
|
||||
# Make sure all DB files belongs to ldap:ldap
|
||||
find /var/lib/ldap -not -name DB_CONFIG -exec chown ldap:ldap {} \;
|
||||
|
||||
exit 0
|
Reference in New Issue
Block a user