Назад | Перейти на главную страницу

Формат файла паролей ldapsearch

Как мне передать пароль ldapsearch используя -y <password file> вариант?
Если я напишу пароль в файле паролей в виде обычного текста, я получаю такую ​​ошибку:

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

То же самое происходит, если я использую -w <password> вариант.

РЕДАКТИРОВАТЬ:
Я выполняю команду

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

Где файл .pass.txt содержит мой пароль в виде обычного текста. И DN, и пароль верны. Если я запустил команду с -W вариант и введите пароль в командной строке, команда выполняется успешно, но я хотел бы как-то сохранить пароль, чтобы создать сценарий.

Имейте в виду, что ldapsearch будет использовать все содержимое файла для пароля - это означает, что он БУДЕТ включать завершающий символ новой строки, если он существует. Чтобы проверить, действительно ли это ваша проблема, попробуйте создать файл без него:

echo -n ThisIsaBadPassword > .pass.txt

(ОБНОВИТЬ: Включен '-n')

Предполагая, что это возврат новой строки / каретки, попробуйте следующее:

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

Затем используйте файл .pass2.txt. Вы всегда можете проверить наличие новых строк и возврата каретки с помощью cat -vE и они будут отображаться как $ и ^ M соответственно.

Вы также могли бы, вероятно, сделать -y <(cat .pass.txt | tr -d '\n\r') непосредственно в команде ldapsearch.

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

Возможно, вам придется chmod 600 pass.txt

Нет необходимости сбрасывать пароль в настоящий файл. Просто повторите его с помощью флага -n, чтобы предотвратить новую строку, затем прочтите его из файлового дескриптора STDIN (/ dev / fd / 0) следующим образом:

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