Skip to content
Snippets Groups Projects
ldap.helper.in 3.15 KiB
Newer Older
  • Learn to ignore specific revisions
  • # -*- 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"
    
    elijah's avatar
    elijah committed
    
    ldap_create_file() {
    
       while true; do
    
    elijah's avatar
    elijah committed
          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
    
    elijah's avatar
    elijah committed
          status=$?
    
    elijah's avatar
    elijah committed
          method="method = <unset>"
          restart="restart = no"
          binddn=""
          passwordfile=""
    
    elijah's avatar
    elijah committed
          [ $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";;
    
    elijah's avatar
    elijah committed
             esac
          done
          get_next_filename $configdirectory/30.ldap
          cat > $next_filename <<EOF
    $method
    $compress
    $restart
    $binddn
    $passwordfile
    
    elijah's avatar
    elijah committed
    # backupdir = /var/backups/ldap
    # conf = /etc/ldap/slapd.conf
    # databases = all
    EOF
    
          chmod 600 $next_filename
          return
       done
    
    elijah's avatar
    elijah committed
    }
    
    ldap_wizard() {
       bdb=no
    
    elijah's avatar
    elijah committed
       ldbm=no
    
       for backend in `grep -e "^backend" /etc/ldap/slapd.conf | @AWK@ '{print $2}'`; do
    
          if [ "$backend" == "bdb" ]; then
    
    elijah's avatar
    elijah committed
             bdb=yes
    
          elif [ "$backend" == "hdb" ]; then
             hdb=yes
          elif [ "$backend" == "ldbm" ]; then
    
    elijah's avatar
    elijah committed
             ldbm=yes
          fi
    
    elijah's avatar
    elijah committed
    
    
       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
    
    elijah's avatar
    elijah committed
       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
    
    elijah's avatar
    elijah committed
       else
    
          msgBox "ldap action wizard" "I couldn't find any supported backend in your slapd.conf. Bailing out."
          return
    
    elijah's avatar
    elijah committed
       fi
    }