/etc/passwd
我想通过从和导入数据来更新用户的密码[用户已存在于 ldap 中] /etc/shadow
。
如何实现这一点?
我将概述我的设置。
- 节点用户 ID 和密码由管理节点 [xcat] 管理,ldap 不用于此目的。
- 我们按照以下步骤将用户从管理节点导入到 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 作业中调用它以在给定的时间/间隔运行: