首页 > 解决方案 > 使用变量使用 bash 自动化 ldapsearch

问题描述

我执行 ldapsearch 之类的

ldapsearch -D "cn=ldapadm,dc=test,dc=com" -w ldappasswd -b "dc=test,dc=com" objectclass=*

它工作正常。

现在我想用变量替换输入:

BASEDN="cn=ldapadm,dc=test,dc=com"
PASSWD="ldappasswd"
BINDDN="dc=test,dc=com"

ldapsearch -D "${BASEDN}" -w "${PASSWD}" -b "${BINDDN}" objectclass=*

但我得到一个

ldap_bind: Invalid credentials (49)

错误...这里有问题的部分是 PASSWD 替换。其他两个替换工作正常。

我在 VirtualBox 上使用 CentOS7。密码不包含特殊字符。

我在这里想念什么?

标签: bashvirtualboxcentos7openldap

解决方案


你可以使用 echo -n "password-here" > password_file

或者,设置为环境变量

read -s "password" read -s -p "password:" 密码密码:在此处输入密码 echo -n $password | ldapsearch -LLL -D cn=whatever,o=whateverelse -y /dev/stdin


推荐阅读