首次登录时重置 LDAP 用户密码

首次登录时重置 LDAP 用户密码

我在 Centos7 系统上运行 LDAP 安装。

我想创建大量用户。这些用户将获得默认密码,因此我希望他们在(唯一)第一次登录时更改密码。

是否有一个选项,我可以在 ldif 文件中设置以启用此功能?(仅在第一次登录时,而不是每次登录时)

提前致谢

编辑:另外,抱歉,如果我问得这么直白,但这个原因中是否有覆盖插入,它有什么用?我通过插入了 ppolicy 架构sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif 并创建了一个 passwordpolicy.ldif

编辑2:

所以我尝试了这里提到的解决方案,但似乎出了点问题,它只是忽略了我的命令。我添加了 ppolicy 架构的架构。

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif

之后我通过添加以下 Ldif 激活了该模块

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: ppolicy.la

然后我创建了一个覆盖层,如一些指南中所述:

database: bdb
suffix: "dc=example,dc=com"

overlay: ppolicy
ppolicy_default: "cn=default,ou=policies,dc=example,dc=com"

之后我添加了实际政策:

# Creates a Policies OU (Organizational Unit)
dn: ou=Policies,dc=example,dc=com
objectClass: organizationalUnit
ou: Policies
# Creates a Policy object in Policies OU (Organizational Unit)
dn: cn=default,ou=Policies,dc=example,dc=com
objectClass: top
objectClass: device
objectClass: pwdPolicy
cn: default
pwdAttribute: 2.5.4.35
pwdMaxAge: 3888000
pwdExpireWarning: 604800
pwdInHistory: 3
pwdCheckQuality: 1
pwdMinLength: 8
pwdMaxFailure: 5
pwdLockout: TRUE
pwdLockoutDuration: 300
pwdGraceAuthNLimit: 0
pwdFailureCountInterval: 0
pwdMustChange: TRUE
pwdAllowUserChange: TRUE
#pwdSafeModify: FALSE

然后我尝试添加具有以下属性的用户(user.ldif):

dn: uid=pwresettest,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: pwresettest
sn: andsoon
userPassword: passwort
loginShell: /bin/bash
uidNumber: 1005
gidNumber: 1005
homeDirectory: /home/pwresettest
pwdReset: TRUE

但是当我用这个用户登录时,没有提示重置密码。

我做错什么了吗?

提前感谢您的回答。

最真诚的

双手

答案1

我假设您的服务器是 OpenLDAP。

如果您部署政策pwdMustChange,您可以选择在策略文件和pwdReset条目上的组合,在首次登录时强制更改密码。

好处是您将部署一些您将来需要的东西:密码过期、密码强制检查等等。

缺点是策略设置需要:一个模式插入、一个覆盖插入和一个设置策略(一个用于存储配置的特殊条目)。

另一个问题是,虽然 ppolicy 是一个通用解决方案,因为它被放置在目录本身中,但是您可能会遇到让它与您的客户端工具互操作的麻烦。

相关内容