Format file kata sandi pencarian

18

Bagaimana saya bisa meneruskan kata sandi untuk ldapsearchmenggunakan -y <password file>opsi?
Jika saya menulis kata sandi dalam file kata sandi dalam teks biasa, saya mendapatkan kesalahan ini:

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

Hal yang sama terjadi jika saya menggunakan -w <password>opsi.

EDIT :
Perintah yang saya jalankan adalah

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

Di mana file .pass.txtberisi kata sandi saya, dalam teks biasa. DN dan kata sandinya benar. Jika saya menjalankan perintah dengan -Wopsi dan mengetikkan kata sandi pada prompt, perintah tersebut berhasil dijalankan, tetapi saya ingin menyimpan kata sandi itu entah bagaimana untuk membuat skrip.

Paolo Tedesco
sumber
"File kata sandi" jenis apa yang Anda gunakan? Anda mungkin ingin menunjukkan kepada kami perintah lengkap yang Anda ketikkan. Apakah Anda menggunakan kredensial ikatan yang benar?
solefald

Jawaban:

22

Perlu diingat bahwa ldapsearch akan menggunakan seluruh konten file untuk kata sandi - yang berarti itu AKAN menyertakan karakter baris baru yang mengakhiri jika ada. Untuk memverifikasi apakah ini memang masalah Anda, coba buat file tanpa file:

echo -n ThisIsaBadPassword > .pass.txt

( PEMBARUAN : Termasuk '-n')

sysadmin1138
sumber
1
Saya baru saja mencobanya, tetapi saya mendapatkan kesalahan yang persis sama ...
Paolo Tedesco
2
Tidak, tidak akan. Anda perlu echo -natau printfuntuk menghindari baris baru.
user1686
Gema -n berhasil! Terima kasih atas bantuannya.
Paolo Tedesco
Sebagai tindak lanjut dari komentar grawity, echo -n berfungsi dengan baik, misalnya: echo -n "secretpassword"> /etc/ldapscripts/ldapscripts.passwd
Ned W.
Masalah yang mengganggu diselesaikan karena ini, terima kasih. Saya hanya biasa sedmenghapus bagian akhir file yang sudah ada.
wirefox
1

Dengan asumsi itu adalah newline / carriage reuturn coba yang berikut ini:

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

Kemudian gunakan file .pass2.txt. Anda selalu dapat memeriksa baris baru dan pengembalian carriage dengan cat -vEdan mereka akan muncul sebagai $ dan ^ M masing-masing.

Anda juga bisa melakukannya -y <(cat .pass.txt | tr -d '\n\r')langsung di perintah ldapsearch.

Kyle Brandt
sumber
0

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

Anda mungkin harus chmod 600 pass.txt

hfranco
sumber
-2

Tidak perlu membuang kata sandi ke file yang sebenarnya. Gema saja dengan flag -n untuk mencegah baris baru, lalu baca dari deskriptor file STDIN (/ dev / fd / 0) sebagai berikut:

echo -n 'mypassword' | ldapsearch -x -D <my dn> -y /dev/fd/0 -h server.x.x -b "dc=x,dc=y" "cn=*"
Brian Showalter
sumber
masalah dengan pendekatan ini adalah membuat Anda tunduk pada histori shell dan PS untuk menemukan kata sandi Anda.
cgseller
1
Poin yang diambil. Ini pertengahan 2018 sekarang. Saya telah belajar dari kesalahan saya. Jangan menganggap serius kegiatan ngobrol 2014 saya. Terima kasih. :)
Brian Showalter