如何在命令行上将用户添加到组?


15

在Linux / Unix上,我可以useradd -G developers vivek用来将vivek添加到开发人员组。如何使用Mac OS X做同样的事情?

然后,如何检查vivek是否在开发人员组中?



不,不是重复的。链接的“重复项”是关于创建用户的。 这个问题是关于管理现有用户拥有的组的。
JL Peyret

Answers:


12

我使用了这种单线:

sudo dscl localhost -append /Local/Default/Groups/thegroupname GroupMembership theusername

30

要将用户添加到组:

dseditgroup -o edit -a vivek -t user developers

(注意:您也可以使用dscl@hobs的答案中的方法来执行此操作,但实际上,您既应将用户的简称添加到GroupMembership列表中,又应将用户的GeneratedUID添加到GroupMembers列表中。 dseditgroup这两者都可以通过一个操作完成。)

要检查会员资格:

dseditgroup -o checkmember -m vivek developers

要么:

dsmemberutil checkmembership -U vivek -G developers

要将用户从组中删除:

dseditgroup -o edit -d vivek -t user developers

(同样,您可以使用来执行此操作dscl,但是需要同时从GroupMembership和GroupMembers中删除用户 dseditgroup。)


已确认。dscl仅添加而不检查用户是否已在组中。它只是添加。并且可能会为组中的同一用户创建重复的成员资格。
risyasin 2015年

好的,这令人沮丧。当我尝试使用第一个命令时,它说“必须提供用户名和密码”。当我使用“ -u michael”时,手册页说它应该提示我输入密码,但是它会再次打印上一条消息!
迈克尔

@Michael如果使用指定了管理员用户-u,则应提示输入密码。您正在使用什么版本的OS X?另外,尝试使用sudo(ie sudo dseditgroup -o ...),那应该可以。
戈登·戴维森

dseditgroup -o edit -a vivek -t user developers是关键。很多人建议,dseditgroup -o edit -a vivek -t developers但只有dseditgroup -o edit -a vivek -t user developers工作才能解决
Lingasamy Sakthivel

8

两种方式: 从终端

此处的所有操作都应在命令行上完成。首先启动dscl,如下所示:

$ dscl本地主机

然后cd到Groups节点:

cd /本地/默认/组

您可以使用ls查看所有组。找到感兴趣的组后,您可以使用cat groupname查看其所有属性。当您准备将用户(用户名)添加到组(组名)时,请使用以下命令:

附加组名GroupMembership用户名

如果要从组中删除成员,请使用以下命令(注意!):

删除组名GroupMembership用户名

完成更改后,通过键入exit退出dscl。

而苹果官方方式:

选择“苹果”菜单>“系统偏好设置”,然后单击“帐户”。打开帐户首选项第2步

如果首选项窗格已锁定,请单击锁定图标,然后输入管理员名称和密码。第三步

单击帐户列表下方的“添加(+)”按钮以创建一个新帐户。步骤4

从“新帐户”弹出菜单中选择一个组。第5步

输入组的名称,然后单击“创建组”。第6步

选中要成为组成员的帐户旁边的复选框。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.