我通过开放目录将 Linux、Mac 和 Windows 的身份验证挂在 Apple OS X Server 上。我希望每 180 天为我的用户设置一次密码过期时间,这个设置已经设置好了,运行正常。问题是非 Mac 客户端,尤其是 Linux 用户,没有迹象表明他们的密码即将过期,直到他们有一天来的时候,他们的密码就失效了,没有任何提示性的错误消息。
因此,我想编写脚本,让用户在密码到期前几天通过电子邮件收到警告,然后在到期当天收到另一封警告。但是,OD LDAP 数据库似乎没有存储信息,mkpassdb -dump 的输出也没有。有谁知道如何以脚本方式从 OD 中获取该信息,或者以其他方式警告 Linux 用户他们的密码即将到期?
答案1
我们遇到了完全相同的问题。我最终编写了一个 perl 脚本来发送密码警告。
本质上,您需要使用/usr/bin/pwpolicy -getglobalpolicy
并比较maxMinutesUntilChangePassword
行/usr/sbin/mkpassdb -dump <user slot>
与Last password change
行。您可以从 LDAP 中属性的第三个字段获取用户的槽位authAuthority
。
然后进行一些简单的计算,将上次密码更改时间与最大使用期限进行比较,如果密码即将过期,则向用户发送电子邮件。
编辑:
在 Tiger 上,mkpassdb
不接受用户槽作为参数。相反,您可以使用 在 kerberos 数据库中查找密码更改时间。您还可以从 LDAP 中检索用户主体的确切名称。kadmin.local -q 'getprinc [email protected]'