From: Nicolas Boisselier Date: Tue, 21 Nov 2017 05:25:08 +0000 (+0000) Subject: etc/profile.d/ldap.sh X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=617410e8054ebdbf8174d8768a16866645edc278;p=nb.git etc/profile.d/ldap.sh --- diff --git a/etc/profile.d/ldap.sh b/etc/profile.d/ldap.sh index 08e40bd9..f35184b0 100644 --- a/etc/profile.d/ldap.sh +++ b/etc/profile.d/ldap.sh @@ -1,5 +1,25 @@ which slapcat > /dev/null || return +ldap_next_number() { + local attr=${1:-uidNumber} + local max=$( + slapcat -o ldif-wrap=999 -a "(&($attr=*))" | grep "^$attr:" | sed 's/^[^:]\+: //' | sort -n | tail -1 + ) + [ -z "$max" ] && max=0 + echo $(($max+1)) +} + +ldap_user_password() { + local ifs=$'\t' + 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 + 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_new_password() { local pass=$(for i in 0 1 3 4;do slappasswd -gn; done; echo) cat <