从命令行进行LDAP密码验证?

时间:2013-12-24 04:11:59

标签: ldap

我提供-w" LDAP服务器密码"在命令行,但我收到错误。 ldap_bind:凭据无效(49)。

所以基本上我试图实现这一点 - 用户可以通过运行一个小脚本重置其密码,但我不想向他公开LDAP密码。所以只在脚本中存储它。

一个非常简单的脚本 -

UID =" $ USER"

回声"欢迎" $ uid;

ldappasswd -x -S -D" cn = xxx,dc = xxxxx,dc = xxx" -W -h' LDap服务器的IP地址' " UID =" $ USER",OU = XXXX,DC = XXX,DC = XXXX" -w" LDAP服务器密码"

如果有任何其他方法可以实现此目的,请告诉我。

谢谢,

1 个答案:

答案 0 :(得分:0)

使用-w <newpassword>在命令行上提供密码,或-W提示,但不是两者都提供。此外,您需要在参数前面添加选项。试试ldappasswd -x -w "LDAP server password" -S -D "cn=xxx,dc=xxxxx,dc=xxx" -h 'IP address of LDap server' "uid=$USER,ou=xxxx,dc=xxx,dc=xxxx"。注意我从$ USER周围删除了点,你需要它们在perl中而不是在shell中。

但请注意,如果将其放在脚本中,则用户需要对脚本具有读取权限,否则shell将不会执行该脚本。这意味着他们将能够cat脚本并查看密码。一种解决方法是将脚本rx仅设置为root用户,并允许sudo <yourscript>不使用密码。此外,没有人会阻止用户更改其$USER变量,因此您的脚本很容易被破解 - 更好地解析id命令的输出,并确保您不使用root如果你做sudo解决方法。