如何更新 ldap 中已存在的用户的密码?

如何更新 ldap 中已存在的用户的密码?

/etc/passwd我想通过从和导入数据来更新用户的密码[用户已存在于 ldap 中] /etc/shadow

如何实现这一点?

我将概述我的设置。

  1. 节点用户 ID 和密码由管理节点 [xcat] 管理,ldap 不用于此目的。
  2. 我们按照以下步骤将用户从管理节点导入到 ldap 服务器:-

a. 我从管理节点复制了/etc/passwd/etc/group& 。/etc/shadow

b.我运行了以下命令:

getent passwd > /tmp/passwd.out
getent shadow > /tmp/shadow.out
cd /usr/share/migrationtools/
./migrate_passwd.pl /tmp/passwd.out > /tmp/passwd.ldif
ldapadd -x -W -D "cn=Manager,dc=aadityaldap,dc=com" -f /tmp/passwd.ldif

现在我们想经常更新密码并保持 ldap 服务器与管理节点同步。请告诉我如何实现这一点。

我尝试以相同的方式将用户导入 ldap,但是出现错误。

[root@iitmserver2 migrationtools]# ldapmodify -x -W -D "cn=Manager,dc=aadityaldap,dc=com" -f /tmp/passwd.ldif
Enter LDAP Password:
ldapmodify: modify operation type is missing at line 2, entry "uid=pharthiphan,ou=People,dc=aadityaldap,dc=com"
[root@iitmserver2 migrationtools]# 

答案1

您的 .ldif 文件格式不正确。获取密码后,您需要将其放入格式正确的 .ldif 中:

dn: <DN TO EDIT> changetype: modify userPassword: <NEW PASSWORD>

如果您有这样的文件,请查找空格,LDAP 确实不喜欢空格。如果没有,请编辑您上面放置的脚本以包含正确格式的 .ldif,并在 cron 作业中调用它以在给定的时间/间隔运行:

http://www.thesitewizard.com/general/set-cron-job.shtml

相关内容