我该如何使用-y <password file>选项将密码传递给ldapsearch ?
如果我以纯文本的forms在密码文件中写入密码,我得到这个错误:
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.xx -b "dc=x,dc=y" "cn=*"
文件.pass.txt包含我的密码,以纯文本格式。 DN和密码都是正确的。 如果我用-W选项运行该命令,并在提示符上键入密码命令运行成功,但我想以某种方式存储密码来创build一个脚本。
请记住,ldapsearch将使用该文件的全部内容作为密码 – 这意味着它将包含一个终止换行符(如果存在的话)。 要validation这是否是您的问题,请尝试创build一个没有文件的文件:
echo -n ThisIsaBadPassword > .pass.txt
( 更新 :包括'-n')
假设是换行符/回车,请尝试以下操作:
cat .pass.txt | tr -d '\n\r' > .pass2.txt
然后使用.pass2.txt文件。 你可以随时用cat -vE检查新的行和回车cat -vE ,它们分别显示为$和^ M。
您也可以直接在ldapsearch命令中执行-y <(cat .pass.txt | tr -d '\n\r') 。
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
你使用什么样的“密码文件”? 您可能想向我们展示您正在input的完整命令。
你使用正确的绑定凭据?
没有必要将密码转储到实际的文件中。 只需用-n标志来回显就可以防止换行,然后从STDIN文件描述符(/ dev / fd / 0)中读取它,如下所示:
echo -n 'mypassword' | ldapsearch -x -D <my dn> -y /dev/fd/0 -h server.xx -b "dc=x,dc=y" "cn=*"