backupninja/handlers/ldap.helper.in

92 lines
3.2 KiB
Plaintext
Raw Normal View History

# -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*-
# vim: set filetype=sh sw=3 sts=3 expandtab autoindent:
HELPERS="$HELPERS ldap:ldap_database_backup"
2005-07-04 08:39:00 +02:00
ldap_create_file() {
while true; do
2005-07-04 08:39:00 +02:00
checkBox "ldap action wizard" "check options (slapcat OR ldapsearch)" \
"slapcat" "export ldif using slapcat" yes \
"ldapsearch" "export ldif using ldapsearch" no \
"compress" "compress the ldif output files" yes \
"ssl" "use SSL (deprecated)" no \
"tls" "use TLS extended operations (RFC2246, RFC2830)" yes
2005-07-04 08:39:00 +02:00
status=$?
compress="compress = no"
2005-07-04 08:39:00 +02:00
method="method = <unset>"
restart="restart = no"
binddn=""
passwordfile=""
ssl="ssl = no"
tls="tls = no"
2005-07-04 08:39:00 +02:00
[ $status = 1 ] && return;
result="$REPLY"
for opt in $result; do
case $opt in
'"compress"') compress="compress = yes";;
'"slapcat"')
method="method = slapcat"
[ "$_RESTART" == "yes" ] && restart="restart = yes"
;;
'"ldapsearch"')
method="method = ldapsearch"
inputBox "ldap action wizard" "ldapsearch requires authentication. Specify here what password file to use. It must have the password with no trailing return and it should not be world readable."
[ $? = 1 ] && return
passwordfile="passwordfile = $REPLY"
inputBox "ldap action wizard" "ldapsearch requires authentication. Specify here what DN to bind as:"
[ $? = 1 ] && return
binddn="binddn = $REPLY"
require_packages ldap-utils
;;
'"ssl"') ssl="ssl = yes";;
'"tls"') tls="tls = yes";;
2005-07-04 08:39:00 +02:00
esac
done
get_next_filename $configdirectory/30.ldap
cat > $next_filename <<EOF
$method
$compress
$restart
$binddn
$passwordfile
$ssl
$tls
2005-07-04 08:39:00 +02:00
# backupdir = /var/backups/ldap
# conf = /etc/ldap/slapd.conf
# databases = all
EOF
chmod 600 $next_filename
return
done
2005-07-04 08:39:00 +02:00
}
ldap_wizard() {
bdb=no
hdb=no
2005-07-04 08:39:00 +02:00
ldbm=no
for backend in `grep -e "^backend" /etc/ldap/slapd.conf | @AWK@ '{print $2}'`; do
if [ "$backend" == "bdb" ]; then
2005-07-04 08:39:00 +02:00
bdb=yes
elif [ "$backend" == "hdb" ]; then
hdb=yes
elif [ "$backend" == "ldbm" ]; then
2005-07-04 08:39:00 +02:00
ldbm=yes
fi
done
2005-07-04 08:39:00 +02:00
if [ "$bdb" == "yes" -o "$hdb" == "yes" ]; then
if [ "$ldbm" == "no" ]; then
msgBox "ldap action wizard" "It looks like the backend in your slapd.conf is set to BDB or HDB. If this is not the case, exit this wizard! From this point on, we will assume BDB or HDB backend, which might have disasterious consequences if this is incorrect."
_RESTART=no
ldap_create_file
fi
2005-07-04 08:39:00 +02:00
elif [ "$ldbm" == "yes" ]; then
msgBox "ldap action wizard" "It looks like the backend in your slapd.conf is set to LDBM. Because of this, you will have less options (because it is not safe to use slapcat while slapd is running LDBM)."
_RESTART=yes
ldap_create_file
2005-07-04 08:39:00 +02:00
else
msgBox "ldap action wizard" "I couldn't find any supported backend in your slapd.conf. Bailing out."
return
2005-07-04 08:39:00 +02:00
fi
}