Bagaimana saya bisa meneruskan kata sandi untuk ldapsearch
menggunakan -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.txt
berisi kata sandi saya, dalam teks biasa. DN dan kata sandinya benar. Jika saya menjalankan perintah dengan -W
opsi dan mengetikkan kata sandi pada prompt, perintah tersebut berhasil dijalankan, tetapi saya ingin menyimpan kata sandi itu entah bagaimana untuk membuat skrip.
Jawaban:
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:
( PEMBARUAN : Termasuk '-n')
sumber
echo -n
atauprintf
untuk menghindari baris baru.sed
menghapus bagian akhir file yang sudah ada.Dengan asumsi itu adalah newline / carriage reuturn coba yang berikut ini:
Kemudian gunakan file .pass2.txt. Anda selalu dapat memeriksa baris baru dan pengembalian carriage dengan
cat -vE
dan mereka akan muncul sebagai $ dan ^ M masing-masing.Anda juga bisa melakukannya
-y <(cat .pass.txt | tr -d '\n\r')
langsung di perintah ldapsearch.sumber
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
sumber
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:
sumber