我有一台 Solaris 服务器,它使用 ldap 进行用户身份验证,使用 kerberos 进行密码验证。用户可以更改密码,但我只遇到密码老化问题,例如:
passwd -r ldap -n 12 giovanni
Enter giovanni's password:
Permission denied
这是 passwd 的 pam.conf
passwd auth sufficient pam_passwd_auth.so.1
passwd auth required pam_dhkeys.so.1
passwd auth sufficient pam_krb5.so.1
passwd auth required pam_unix_cred.so.1
passwd auth required pam_unix_auth.so.1
我知道在 kerberos 上可以使用策略,但如果我想为用户设置密码时效呢?我必须只为该用户设置策略吗?没有办法使用 passwd 命令吗?
由于密码存储在 Kerberos 中,因此只有 Kerberos 服务器可以有效地管理其老化。
详细信息将取决于 Kerberos 实现。假设您正在使用 MIT Kerberos,则要使用的工具是
kadmin
。使用具有管理员权限的 Kerberos 主体(= Kerberos 用户帐户)登录后,您将看到kadmin:
提示。使用
get_principal giovanni
,您应该能够查看用户的属性。您需要检查Policy:
属性以查看用户主体是否已具有与其关联的密码策略:如果有,该属性将标识适用策略对象的名称。使用
get_policy <policy_name>
(替换<policy_name>
为策略对象的实际名称)您可以查看现有策略的内容。如果存在现有策略对象,则可以修改它以添加密码生存期限制(仍在
kadmin:
提示中)。例如:但这会影响所有分配了相同策略的用户,因此您可能希望为该用户创建新策略,然后将该策略应用于用户主体。如果用户已有策略,您可能希望将当前策略的所有限制也添加到新策略中,方法是根据旧策略的内容,在命令中添加选项
-minlife
、-minlength
和-minclasses
/或。-history
addpol
但是,这仅适用于将来的密码更改。要将过期限制也应用于当前密码,您还需要一个命令: