我正在做这个项目来集中来自 openldap 的身份验证,我遇到了以下问题:现在我的 ldap 用户分配给 sudo 组(命令'id'),因此我可以从命令终端执行所有操作,但是在用户帐户框(桌面屏幕右上角)中,它显示我的 ldap 用户的标准角色,每次 ldap 用户更改密码时,他们都应该输入管理员的密码,但 ldap 用户不知道其密码。
可以将 ldap 用户提升为管理员角色吗?有任何脚本方法吗?我有 500 多个 ldap 用户身份验证。
答案1
您无需具有任何管理角色即可在 ldap 中更改自己的密码。能够使用您自己的凭据进行身份验证就足够了。
Jere 是一个脚本,您可以使用它来允许用户更改 ldap 服务器上的密码。它还强制用户使用长度至少为 8 个字符的密码。正确的方法当然是使用 ppolicy(密码策略覆盖)在 ldap 服务器上强制执行此更改,因为任何读取脚本或从 shell 中调用 ldappasswd 的用户都可以轻松覆盖它
#!/bin/bash
# a simple yet precise script to allow users to set their own ldap password
stty -echo
pwdminlenght=8
passwordok=true
username=$(whoami)
printf "Please enter your current ldap password:\n"
read currentpassword
printf "Please enter your new password:\n"
read password
pwdlenght=$(echo ${#password})
if [ "$pwdminlenght" -gt "$pwdlenght" ] ; then
printf "Error, new password to short must be > 8 characters\n"
passwordok=false
fi
if [ "$passwordok" = "true" ] ; then
ldappasswd -x -w $currentpassword -s $password -D uid=$username,ou=int,dc=yourcompany,dc=org -h hostnameofyourldapserver.org
fi
stty echo