编辑

编辑

我有 CentOS6,使用 LDAP 用户身份验证,使用 OpenLDAP 和 SSSD。我试图强制用户更改密码。根据这个 ServerFault 问题我尝试将其设置ShadowLastChange0,但当用户使用 SSH 登录时它似乎被忽略了。

在那个问题中有一个警告,它可能会导致密码更改请求无限循环的错误,但我甚至没有收到一个请求......

这个问题中还有另一个建议,

尝试 passwordMustChange 属性

但是当我尝试在我的.ldif文件中使用它时,我收到一个Undefined attribute type (17)错误

我还尝试passwd -e username在本地 Unix 用户上使用,只是为了验证它是否正常工作,是的 - 该本地用户在 SSH 登录时被迫更改密码。

编辑

我发现Password Policies覆盖在OpenLDAP 文档。这有帮助吗?(如果有帮助的话 - 这是解决我的问题的唯一方法吗?)

编辑2

Password Policies似乎也没有什么帮助。

编辑3

A。

实际上,密码策略工作正常。首先我尝试用hp 支持建议- 但未ppolicy显示在日志文件中。

但后来我找到了验证策略的好方法——设置pwdAllowUserChangeFALSE,然后看到用户无法使用更改密码passwd,服务器会发出错误消息。或者,更改pwdMaxAge1,登录,然后看到用户收到密码更改提示。

但是,pwdMustChange: TRUE仍然没有帮助。在我更改用户密码后(使用 JXplorer 客户端或从 Unix shell ldapmodify),用户没有收到密码更改通知。

也许我没有按预期设置密码?在slapo-ppolicy他们说

密码必须更改

   This  attribute  specifies  whether  users must change their passwords when
   they first bind to the directory after a password is set or  reset  by  the
   administrator,  or not.  If pwdMustChange has a value of "TRUE", users must
   change their passwords when they first bind to the directory after a  pass-
   word  is  set  or  reset  by  the  administrator. 

setreset密码之间似乎有区别。我试过了set。也许reset会对我有帮助。我如何重置密码?

这是我的政策:

dn: cn=default,ou=policies,dc=***,dc=com
cn: default
objectClass: pwdPolicy
objectClass: person
objectClass: top
pwdAttribute: userPassword
pwdCheckQuality: 2
pwdExpireWarning: 604800
pwdFailureCountInterval: 30
pwdInHistory: 2
pwdLockout: TRUE
pwdLockoutDuration: 172800
pwdMinAge: 0
pwdMinLength: 6
pwdMustChange: TRUE
pwdSafeModify: FALSE
sn: dummy value
pwdAllowUserChange: FALSE
pwdGraceAuthNLimit: 0
pwdMaxFailure: 5
pwdMaxAge: 999999

B.

(回答 Cameron Kerr 在评论中提出的问题)

这是 CentOS 6.6。这些是我的 /etc/pam.d/system-auth* 文件:

# cat  /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_fprintd.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_sss.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_sss.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_sss.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     optional      pam_oddjob_mkhomedir.so umask=0077
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_sss.so

# cat  /etc/pam.d/system-auth-ac
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_fprintd.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_sss.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_sss.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_sss.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     optional      pam_oddjob_mkhomedir.so umask=0077
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_sss.so

编辑4

好的,我发现如果我pwdReset:TRUE在用户条目中设置,则他登录时需要更改密码。我认为这取决于 PPolicy 的 pwdMustChange: TRUE

它正在起作用,但我不明白为什么这是我能找到的唯一解决方案。(也是谷歌找不到我的解决方案!)此外,奇怪的是必须进行这种改变ldapmodify- 在我改变它之前,JXplorer 甚至没有向我显示该属性......

相关内容