From af0fcf4f79f73f7223c2a82955425560700defb8 Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Fri, 1 Dec 2017 04:34:16 +0000 Subject: [PATCH] etc/profile.d/ldap.sh --- etc/profile.d/ldap.sh | 71 +++++++++++++++++-------------------------- lib/awk/ldap2csv.awk | 60 +++++++++++++++++++++++++++--------- 2 files changed, 73 insertions(+), 58 deletions(-) diff --git a/etc/profile.d/ldap.sh b/etc/profile.d/ldap.sh index ae68e567..f452ce85 100644 --- a/etc/profile.d/ldap.sh +++ b/etc/profile.d/ldap.sh @@ -1,38 +1,15 @@ which slapcat > /dev/null || return -ldap_next_number() { +ldap_maxid() { local attr=${1:-uidNumber} - local max=$( - slapcat -o ldif-wrap=999 -a "(&($attr=*))" | grep "^$attr:" | sed 's/^[^:]\+: //' | sort -n | tail -1 + local max=${2:-65000} + max=$( + slapcat -o ldif-wrap=999 -a "(&($attr=*))" | grep "^$attr:" | sed 's/^[^:]\+: //' | awk '$1 < '$max' {print $0}' | sort -n | tail -1 ) [ -z "$max" ] && max=0 echo $(($max+1)) } -ldap_group_user_password() { - local ifs=$'\t' - slapcat -o ldif-wrap=999 -a '(&(objectClass=posixAccount)(userPassword=*))' | grep -E "^(uid|userPassword):" | sed -e 's/"/\\"/g' -e "s/: /$ifs/g" | while IFS="$ifs" read -r -a row; do - echo ">${row[0]} ${row[1]}" - case ${row[0]} in - uid) uid=${row[1]}; continue ;; - userPassword) userPassword="${row[1]}" ;; - userPassword) userPassword=$(echo "${row[1]}" | base64 -d) ;; - esac - echo "$uid $userPassword" - done - return - slapcat -o ldif-wrap=999 -a '(&(objectClass=posixGroup)(memberUid=*))' | grep -E "^(cn|memberUid):" | sed -e 's/"/\\"/g' -e "s/: /$ifs/g" | while IFS="$ifs" read -r -a row; do - case ${row[0]} in - cn) cn=${row[1]}; continue ;; - memberUid) memberUid=${row[1]} ;; - esac - echo "$cn $memberUid" - #echo "${row[0]}"; echo "${row[1]}"; echo - done - # | sed -E -e 's/"/\\"/g' -e 's/^([^:]+): (.*)$/k="\1"; v="\2"/' | while read - #| sed -E -e 's/"/\\"/g' -e 's/: (.*)$/="\1";/' | awk '{if (/;$/) {printf $0; } else {print $0; }}' -} - ldap_user_password() { local pass=$(for i in 0 1 3 4;do slappasswd -gn; done; echo) cat <