diff --git a/seqs/ldap.cfg.example b/seqs/ldap.cfg.example new file mode 100644 index 0000000..b8c4caa --- /dev/null +++ b/seqs/ldap.cfg.example @@ -0,0 +1,7 @@ +#!/bin/bash + +# Configuration options for ldap installation and management + +LDAP_DC="dc=winklerfamilie,dc=eu" +LDAP_OU_GROUPS="ou=Groups" +LDAP_OU_USERS="ou=Users" diff --git a/seqs/ldap.sh b/seqs/ldap.sh new file mode 100755 index 0000000..b59833e --- /dev/null +++ b/seqs/ldap.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +toolName=ldap + +# Get script working directory +# (when called from a different directory) +WDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >>/dev/null 2>&1 && pwd )" +CONFIG=0 +CONFIG_FILE_NAME="${toolName}.cfg" +CONFIG_FILE_TEMPLATE="$WDIR/${CONFIG_FILE_NAME}.example" + +step_config() { + initSeqConfig "$CONFIG_FILE_NAME" "$CONFIG_FILE_TEMPLATE" + if [ $? -eq 0 ] ; then + CONFIG=1 + fi +} + +step_100_info() { echo "Add group "; } +step_100_alias() { ALIAS="addgroup"; } +step_100() { + local groupName=g2 + local memberDn="uid=ldaptest,${LDAP_OU_USERS},${LDAP_DC}" + + variable2Ldif add "$addGroup" +} +addGroup="dn: cn=\${groupName},\${LDAP_OU_GROUPS},\${LDAP_DC} +objectClass: groupofnames +cn: \${groupName} +description: Created by $0 +member: \${memberDn} +" + +step_110_info() { echo "Remove group "; } +step_110_alias() { ALIAS="rmgroup"; } +step_110() { + local groupName=g2 + variable2Ldif modify "$rmGroup" +} +rmGroup="dn: cn=\${groupName},\${LDAP_OU_GROUPS},\${LDAP_DC} +changetype: delete +" + +step_104_info() { echo "List available groups"; } +step_104_alias() { ALIAS="listgroups"; } +step_104() { + echo " [I] Available groups:" + ldapsearch -x -LLL -H ldap:/// -b ${LDAP_OU_GROUPS},${LDAP_DC} dn gidNumber $2 +} + +step_106_info() { echo "List available users"; } +step_106_alias() { ALIAS="listusers"; } +step_106() { + echo " [I] Available user:" + ldapsearch -x -LLL -H ldap:/// -b ${LDAP_OU_USERS},${LDAP_DC} dn uidNumber gidNumber $2 +} + +variable2Ldif() { + local cmd="ldapmodify" + local tempLdif=`eval "echo \"$2\""` + case $1 in + add) + cmd="ldapadd" + ;; + esac + exep "echo \"$tempLdif\" | $cmd -x -D cn=admin,${LDAP_DC} -W" +} + +VERSION_SEQREV=10 +. /usr/local/bin/sequencer.sh