我正在使用 CentOS-ds(基于 Redhat-DS 和 389 目录服务器)。
我有 LDAP 设置,并且正在对用户进行身份验证(还有 Sudo,这是一个方便的功能!)。甚至 passwd 也能很好地更改存储在 Ldap 中的密码。但是,我有一个小问题。登录服务器后,如何强制所有用户帐户创建新密码?我会这样做的正常方式:
chage -d 0 username
Run Code Online (Sandbox Code Playgroud)
似乎不是“ldap-ified”。如何强制人们在下次 (ssh) 登录时创建新密码?我需要创建用户帐户,我真的不希望人们保留我为他们设置的密码。
*edit - 我已将 LDAP 服务器设置为在重置密码时强制更改密码。但是,我似乎无法找到一种以正确方式“重置”密码以触发此操作的方法。(我所能找到的只是以目录管理员身份登录并更改他们的密码)*edit2。由于我们将在这部分完成后将许多机器移至 LDAP,因此我编写了一个脚本以以 root 身份运行以设置 LDAP 身份验证。也许我在这里遗漏了什么?(编辑出服务器和基于。)
#!/bin/sh
#
authconfig --enableldap --enableldapauth --enablemkhomedir --ldapserver=<server1>,<server2> --ldapbasedn="<basedn>" --update
echo 'sudoers: files ldap' >> /etc/nsswitch.conf
echo 'base <basedn>
timelimit 120
bind_policy soft
bind_timelimit 120
idle_timelimit 3600
uri ldap://<server1>/
uri ldap://<server2>/
ssl no
tls_cacertdir /etc/openldap/cacerts
pam_password md5
sudoers_base ou=SUDOers,<basedn>
' > /etc/ldap.conf
Run Code Online (Sandbox Code Playgroud)
我找到了一个解决方案:在用户 LDAP 条目中,设置ShadowLastChange = 0
这将强制用户必须重置其 LDAP 密码。但是,还有另一个错误,您必须修改 LDAP 服务器上的权限(ACL)(我有Allow Self entry modification
OU=People 上的默认权限),以允许他们修改 target ShadownLastChange
。
否则,他们无法更改该值,并且该值将保持为零,迫使他们每次登录时都重设密码。
归档时间: |
|
查看次数: |
16732 次 |
最近记录: |