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