[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: strano problemino con stringhe base64



Mah, ma me pare che funzioni rimuovendo la parte '-e "s/$container_ns/$container_ab/"' che non posso testare in quanto non so cosa ci sia nelle variabili container_ns e container_ab . Magari c'è qualcosa di strano che interferisce?

Diego

Il 12/03/2024 10:18, Piviul ha scritto:
Ciao a tutti, ho uno script che interroga (ldapsearch) alcuni campi di un db ldap e aggiunge alcuni altri ammenicoli che poi importa in un altro db sempre ldap.

In particolare nello script ad un certo punto ho questo codice:

ldapsearch -LLL \
         -D "$bind_ns" \
         -w "$pwd_ns" \
         -b "$baseaddress_ns" \
         -H "ldaps://ad.csaricerche.com" \
'(&(objectClass=user)(!(isCriticalSystemObject=TRUE))(!(logonCount=0))(memberOf=CN=utenti,CN=Users,DC=ad,DC=csaricerche,DC=com))' \
         sAMAccountName displayName userPrincipalName | \
         sed -e 's/userPrincipalName:/mail:/' \
             -e "s/$container_ns/$container_ab/" \
             -e "s/sAMAccountName:\ \(.*\)/cn: \1/" \
            -e "s/displayName:\ \(.*\)$/displayName: \1\nsn: \1\nou: utenti\nobjectClass: top\nobjectClass: inetOrgPerson/"> $ldap_ns_path

che in altre parole vorrebbe semplicemente interrogare sAMAccountName displayName userPrincipalName ed aggiungere sn con la stessa cosa che trova in userPrincipalName e poi altri ammenicoli necessari per l'importazione successiva in un altro db.

Il tutto ha funzionato bene per anni ma ora in displayName di un record è stata inserita un'accentata e questo fa si che il comando sopra, al record contenente un'accentata, non venga aggiunto né sn né gli altri ammenicoli mentre compaioni : aggiuntivi al displayName.

In altre parole per il record in questione viene restituito come

dn: CN=enicolo,OU=UsersAndGroups,DC=ad,DC=mydomain,DC=ext
cn: enicolo
mail: enicolo@mydomain.ext
displayName:: Tmljb2zDsiBFZG9hcmRv

dove Tmljb2zDsiBFZG9hcmRv è la stringa contenente una o accentata codificata in base64:

# echo Tmljb2zDsiBFZG9hcmRv | base64 --decode
Nicolò Edoardo

Invece sed avrebbe dovuto restituire

dn: CN=enicolo,OU=UsersAndGroups,DC=ad,DC=mydomain,DC=ext
cn: enicolo
mail: enicolo@mydomain.ext
displayName: Tmljb2zDsiBFZG9hcmRv
sn: Tmljb2zDsiBFZG9hcmRv
ou: utenti
objectClass: top
objectClass: inetOrgPerson


Qualcuno ha qualche idea di cosa dabbia fastidio a sed?

Grazie

Piviul


--
Diego Zuccato
DIFA - Dip. di Fisica e Astronomia
Servizi Informatici
Alma Mater Studiorum - Università di Bologna
V.le Berti-Pichat 6/2 - 40127 Bologna - Italy
tel.: +39 051 20 95786


Reply to: