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
- echo "${row[0]}"
- echo "${row[1]}"
- echo
+ 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; }}'
slapcat -a 'cn=*' $@ | grep ^dn | sed 's/dn: //'
}
+ldapsearch_csv() {
+ local filter="$1"; shift
+ slapcat -a "$filter" -o ldif-wrap=no | awk -F': ' '\
+/^$/ { \
+if (!count) { \
+ line = ""; \
+ for (i in fields) { sub(/:$/,"",i); line = line"\t"i; } \
+ sub(/^\t/,"",line); \
+ print line; \
+} \
+ count++ ;\
+ line = ""; \
+ for (i in fields) { \
+ sub(/^.*?: /,"",h[i]);
+ if (i ~ /:$/) { cmd="echo "h[i]" | base64 -d"; cmd | getline x; close(cmd); h[i] = x; }; \
+ line = line"\t"h[i];
+ }; \
+ sub(/^\t/,"",line); \
+ print line; \
+ next; \
+} \
+{ h[$1] = $0; fields[$1]++; } \
+'
+}
+
# NB 14.11.17 ldap_objectclasses() {
# NB 14.11.17 slapcat -o ldif-wrap=999 -b cn=config -a '(&(objectClass=olcSchemaConfig))' | awk '\
# NB 14.11.17 /^olcObjectClasses:.*MUST/ {\