From: Nicolas Boisselier Date: Fri, 1 Dec 2017 06:07:17 +0000 (+0000) Subject: lib/awk/base64decode.awk X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=49874d57c1c365adc787ac1bdb053c89fc9340c3;p=nb.git lib/awk/base64decode.awk --- diff --git a/etc/profile.d/ldap.sh b/etc/profile.d/ldap.sh index f452ce85..9e630c58 100644 --- a/etc/profile.d/ldap.sh +++ b/etc/profile.d/ldap.sh @@ -93,10 +93,12 @@ ldap_gup() { local args slapcat_csv '(&(objectClass=posixGroup)(memberUid=*))' cn memberUid | while read -r -a line; do + group=${line[0]} line=("${line[@]:1}") # shift + for uid in ${line[*]}; do - #slapcat_csv "(&(uid=$uid)(userPassword=*))" userPassword + #echo slapcat_csv "(&(uid=$uid)(userPassword=*))" userPassword pass=$(slapcat_csv "(&(uid=$uid)(userPassword=*))" userPassword) echo $group $uid $pass done diff --git a/lib/awk/ldap2csv.awk b/lib/awk/ldap2csv.awk index 9fba2c2f..d34111ae 100755 --- a/lib/awk/ldap2csv.awk +++ b/lib/awk/ldap2csv.awk @@ -7,6 +7,9 @@ BEGIN { PRINT_HEAD = 0 } +function header() { +} + /^$/ { if (FOUND == 0) { @@ -16,11 +19,9 @@ BEGIN { if (PRINT_HEAD == 1 && !count) { line = "" - #for (i in fields) { split(filter,values," ") for (i in values) { i = values[i] - sub(/:$/,"",i) line = line"\t"i } sub(/^\t/,"",line) @@ -34,16 +35,8 @@ BEGIN { split(filter,values," ") for (i in values) { i = values[i] - #for (i in fields) { - - if (i ~ /:$/) { -# NB 01.12.17 cmd="echo "h[i]" | base64 -d" -# NB 01.12.17 cmd | getline x -# NB 01.12.17 close(cmd) -# NB 01.12.17 h[i] = x - h[i] = base64decode(h[i]) - } + if (B64[i] == 1) h[i] = base64decode(h[i]) line = line"\t"h[i] } @@ -60,16 +53,33 @@ BEGIN { /: / && !/^(objectClass_): / { FOUND = 1 + + line = $0 + sub(/^.*?: /,"",line) + sub(/\t/," ",line) + sub(/[ \r\n]+$/,"",line) + #gsub(/\r?\n/,"$",line) + field = $1 - sub(/^.*?: /,"",$0) - sub(/\t/," ",$0) - sub(/[ \r\n]+$/,"",$0) - #gsub(/\r?\n/,"$",$0) + # Base64 + B64[field] = 0 + if (field ~ /:$/) { +#print ">>>>"field +# NB 01.12.17 cmd="echo "line" | base64 -d" +# NB 01.12.17 cmd | getline x +# NB 01.12.17 close(cmd) +# NB 01.12.17 line = x + #line = base64decode(line) +#print "<<<<"line + sub(/:$/,"",field) + B64[field] = 1 + } + if (field in h && h[field] != "") { - h[field] = h[field]""CONCAT""$0 + h[field] = h[field]""CONCAT""line } else { - h[field] = $0 + h[field] = line if (PFIELDS_OK == 0) filter = filter" "field }