如何使用已弃用 pwpolicy 的 Mac OS X Server Yosemite 从 CLI 禁用用户帐户?

如何使用已弃用 pwpolicy 的 Mac OS X Server Yosemite 从 CLI 禁用用户帐户?

在 Mac OS X Yosemite 之前,管理员可以利用以下 pwpolicy 命令禁用 Open Directory 用户:

pwpolicy -a diradmin -p password -u username -disableuser  

或者

pwpolicy -a diradmin -p password -u username -setpolicy 'isdisabled=1'

但是,自从升级到 Yosemite 以来,这些设置实际上并没有禁用用户,而且它们在 MAN 页面中已被弃用。终端将像成功一样处理它们,但服务器管理 GUI 仍会将用户显示为活动状态,并且他们仍将能够访问共享文件。

根据 pwpolicy 手册页,“帐户策略”是各种已弃用的 pwpolicy 命令的替代品,如下所示http://www.manpagez.com/man/8/pwpolicy/。不过,我在解读格式方面有点困难。我只需要禁用一个用户,但我找不到正确的关键字设置。

有人有经验或建议吗?

谢谢!

答案1

在 El Capitan 中,你可以使用以下命令:

pwpolicy -u target -disableuser

扭转

pwpolicy -u target -enableuser

答案2

我正要亲自深入研究这个问题。

在 Mavericks 中,你可以使用 pwpolicy 来设置项目,但要真正看到它们的存储位置,你可以使用:

dscl . -read /Users/username PasswordPolicyOptions

所以......我刚刚尝试过:

sudo dscl . -read /Users/ruthann accountPolicyData

我只得到了一个含糊的回应。所以我想我们必须

dsAttrTypeNative:accountPolicyData:
 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>creationTime</key>
    <real>1424277729.05691</real>
    <key>passwordLastSetTime</key>
    <real>1424293590.9081411</real>
</dict>
</plist>

该时间以“Unix 时间”秒为单位,自 1970 年 1 月 1 日 00:00 开始。

我担心设置长度、有效期和复杂性。我将浏览 Appple 以查看我能找到什么,因为我想在这台机器上更改我的密码,但我尝试的任何操作都会被拒绝,因为它不符合政策。

相关内容