Formato file password ldapsearch


18

Come posso passare una password per ldapsearchusare l' -y <password file>opzione?
Se scrivo la password nel file delle password in chiaro, visualizzo questo errore:

ldap_bind: Invalid credentials (49)
    additional info: 80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 52e, v1772

Lo stesso succede se uso l' -w <password>opzione.

EDIT :
il comando che sto eseguendo è

ldapsearch -x -D <my dn> -y .pass.txt -h server.x.x -b "dc=x,dc=y" "cn=*"

Dove il file .pass.txtcontiene la mia password, in testo semplice. Sia il DN che la password sono corretti. Se eseguo il comando con l' -Wopzione e digito la password sul prompt, il comando viene eseguito correttamente, ma in qualche modo vorrei memorizzare la password per creare uno script.


Che tipo di "file di password" stai usando? Puoi mostrarci il comando completo che stai digitando. Stai utilizzando le credenziali di bind corrette?
solefald,

Risposte:


22

Tieni presente che ldapsearch utilizzerà l'intero contenuto del file per la password, il che significa che includerà un carattere di fine riga se ne esiste uno. Per verificare se questo è effettivamente il tuo problema, prova a creare un file senza uno:

echo -n ThisIsaBadPassword > .pass.txt

( AGGIORNAMENTO : Incluso '-n')


1
Ci ho appena provato, ma ottengo esattamente lo stesso errore ...
Paolo Tedesco,

2
No, non lo farà. È necessario echo -no printfper evitare la nuova riga.
user1686

L'eco -n ha fatto il trucco! Grazie a tutti per il vostro aiuto.
Paolo Tedesco,

In seguito al commento di Grawity, echo -n funziona perfettamente, ad esempio: echo -n "secretpassword"> /etc/ldapscripts/ldapscripts.passwd
Ned W.

Problema fastidioso risolto a causa di questo, grazie. Ho appena usato sedper eliminare la fine di un file esistente, però.
wirefox

1

Supponendo che sia il ritorno di newline / carrello provare quanto segue:

cat .pass.txt | tr -d '\n\r' > .pass2.txt

Quindi utilizzare il file .pass2.txt. Puoi sempre verificare la presenza di nuove righe e ritorni a cat -vEcapo con e verranno visualizzati rispettivamente come $ e ^ M.

Probabilmente potresti anche farlo -y <(cat .pass.txt | tr -d '\n\r')direttamente nel comando ldapsearch.


0

ldapsearch -x -D cn=Manager,dc=domain,dc=com -y pass.txt -H ldap://ldap.domain.com -b dc=domain,dc=com

Potrebbe essere necessario chmod 600 pass.txt


-2

Non è necessario scaricare la password in un file reale. Basta eco con il flag -n per impedire la nuova riga, quindi leggerlo dal descrittore di file STDIN (/ dev / fd / 0) come segue:

echo -n 'mypassword' | ldapsearch -x -D <my dn> -y /dev/fd/0 -h server.x.x -b "dc=x,dc=y" "cn=*"

il problema con questo approccio è che ti lascia soggetto alla cronologia della shell e PS per scoprire la tua password.
cgseller

1
Punto preso. È metà 2018 ora. Ho imparato dai miei errori. Non prendere sul serio il mio blathering del 2014. Grazie. :)
Brian Showalter,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.