我在 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 是一个通用解决方案,因为它被放置在目录本身中,但是您可能会遇到让它与您的客户端工具互操作的麻烦。