我正在按照其他人编写的说明来强化 OS X 机器。其中一项要求是确保某些系统定义的组中没有用户。在这个例子中,我将使用 _ard,但有相当多的用户。
默认情况下,组 _ard 中有一个用户,也叫 _ard。因此,我想使用 dseditgroup 从组中删除该用户:
dseditgroup -o edit -u myadminname -p -d _ard -t user _ard
系统提示我输入密码,一切似乎都正常。没有返回任何错误消息,但用户 _ard 仍在组 _ard 中。
dseditgroup -o checkmember -m _ard _ard
yes _ard is a member of _ard
我尝试了许多排列,包括使用sudo
、指定-n .
和拼写出本地组和用户的完整路径。
为了验证一下实际情况,我为组和用户输入了乱码名称。在这两种情况下,我都收到了错误消息。因此,系统识别了组和用户,没有返回错误,但没有执行操作。
最后我转向dscl
尝试完成同样的事情,但同样没有成功。我尝试的所有排列都是基于整个互联网的搜索,包括许多排列
sudo dscl localhost -delete /Local/Default/Groups/thegroupname GroupMembership theusername
给出了相同的结果-没有错误,没有结果。
那么,我是不是要按照写得不好的说明来做,而事实并非如此可能的将该用户从该组中删除,还是我遗漏了其他内容?
任何帮助是极大的赞赏。
编辑以添加:应该提到 GUI 也不允许我删除用户。
答案1
_ard 组是 _ard 用户的主要组。在 GUI 中(至少在 10.6 中),您可能会注意到 _ard 用户是斜体的(查看 _ard 组的成员时)。
您不能拥有没有主组的用户名;但是,如果您确实想要,您可以更改主组。使用 GUI 选择 _ard 用户,并将主组设置为更适合您的组。
话虽如此,我相信文档创建者是出于好意;但是,我看不出减少 _ard 组成员有什么用处。(其他许多本地 _* 组也是如此)