出于某种原因,苹果擅长改变(此处插入随机特征)。因此,我无法禁用(不是锁定帐户,通过将 pwdLastSet 设置为 0 似乎可以正常工作)该功能应禁止用户登录。
原因是我正在创建一个场景:
- 用户尝试登录 3 次 -> 被锁定
- 后台运行的脚本将在约 30 分钟后解锁帐户
在系统管理员有一个简洁的按钮来禁用帐户之间或之后,它不应该只是锁定帐户,因为这会破坏脚本和整个锁定机制的目的,而是禁用所有帐户,使用户帐户登录无效,即使提供了正确的密码并且帐户首先被解锁/从未锁定。
这可能吗?我在哪里获取和设置这个值,因为它肯定不再存储在 LDAP 目录中(或者根本不存在?)。
脚本语言:PHP
OSX 服务器:10.8
(注意:我以前使用过 Unix,也有一些 Windows 背景,在 OSX 中查找东西比在 OSX 中查找东西更令人困惑,因为即使你能在互联网上找到任何指南和文档,80% 的指南和文档也已经过时了,因此我需要帮助,即使是最基本的东西,比如弄清楚不同密码/账户部分的机制是如何以及在何处)
答案1
我不确定这是否是您想要的。不过,在苹果服务器工具中,您可以将总登录尝试次数设置为您想要的任意数字。
只需转到左侧的 Open Directory 菜单。然后单击右侧的服务器,然后单击齿轮并选择更改密码策略。在这里,您可以选择在 X 次尝试后禁用登录。
现在要重置选项,您可以在命令行中执行以下操作:
pwpolicy -a <diradmin> -p <password> -u <username to unlock> -setpolicy "isDisabled=0"
这样特定用户将被解锁
您可以运行一个 bash 脚本来查看 LDAP,看看哪些用户被锁定,然后解锁这些用户。为此,您还必须查看用户被锁定的时间。但是,老实说,我不知道这是否可行。
因此,另一个选择是每半小时运行一次 cronjob 来解锁所有用户。不过,如果这样做,有些用户将在 1 分钟后解锁。