From 62936636ee958a046acf2ee43e93c3014388db41 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Tue, 12 Jun 2007 12:04:22 +0000 Subject: Add alternative ldap initialization script. --- ldap/db/base.ldif.in | 16 ++++++++++++++++ ldap/mkldapdb | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 ldap/db/base.ldif.in create mode 100755 ldap/mkldapdb (limited to 'ldap') diff --git a/ldap/db/base.ldif.in b/ldap/db/base.ldif.in new file mode 100644 index 0000000..8b9d263 --- /dev/null +++ b/ldap/db/base.ldif.in @@ -0,0 +1,16 @@ +dn: @SUFFIX@ +objectClass: top +objectClass: dcObject +objectClass: organization +o: @DOMAIN@ +dc: @ORG@ + +dn: ou=people, @SUFFIX@ +objectClass: organizationalUnit +ou: people +description: Users in @ORG@ + +dn: ou=group, @SUFFIX@ +objectClass: organizationalUnit +ou: group +description: Groups at @ORG@ diff --git a/ldap/mkldapdb b/ldap/mkldapdb new file mode 100755 index 0000000..374e4cd --- /dev/null +++ b/ldap/mkldapdb @@ -0,0 +1,47 @@ +#!/bin/sh + +set -e + +umask 066 + +# Resolve some defaults from other system config +basedn="`grep '^BASE\b' /etc/ldap/ldap.conf | sed -e 's/^BASE[[:space:]]\+//'`" +dnsdomain="`dnsdomainname`" +orgname="" +# Grab some defaults from /var/lib/dpkg/info/slapd.postinst +checkpoint="checkpoint 512 30" +backend="bdb" +backendoptions="# For the Debian package we use 2MB as default but be sure to update this\n# value if you have plenty of RAM\ndbconfig set_cachesize 0 2097152 0\n\n# Sven Hartge reported that he had to set this value incredibly high\n# to get slapd running at all. See http:\/\/bugs.debian.org\/303057\n# for more information.\n\n# Number of objects that can be locked at the same time.\ndbconfig set_lk_max_objects 1500\n# Number of locks (both requested and granted)\ndbconfig set_lk_max_locks 1500\n# Number of lockers\ndbconfig set_lk_max_lockers 1500" + +if [ -r /etc/local/org.conf ]; then + . /etc/local/org.conf +fi + +for var in basedn dnsdomain orgname backend; do + if [ -z "`eval echo '$'$var`" ]; then + echo 2> "ERROR: Required variable '$var' missing. Exiting...!" + exit 1 + fi +done + +masterdir=/etc/local-COMMON/ldap/db +tempdir=`mktemp -dt slapd.XXXXXX` +cfgdir=/etc/ldap +dbdir=/var/lib/ldap + +for section in base; do + sed <"$masterdir/$section.ldif.in" >"$tempdir/$section.ldif" \ + -e "s/@SUFFIX@/$basedn/g" \ + -e "s/@DOMAIN@/$dnsdomain/g" \ + -e "s/@ORG@/$orgname/g" \ + -e "s/@ADMIN@/cn=admin,$basedn/g" \ + -e "s/@CHECKPOINT@/$checkpoint/g" \ + -e "s/@BACKEND@/$backend/g" \ + -e "s/@BACKENDOPTIONS@/$backendoptions/g" +done + +for db in passwd group; do + getent $db >"$tempdir/$db.dump" + ( cd /usr/share/migrationtools && ./migrate_passwd.pl "$tempdir/$db.dump" >"$tempdir/$db.ldif" ) +done + -- cgit v1.2.3