2013-05-02 16:34:01 +0000 2013-05-02 16:34:01 +0000
62
62

如何在Mac OS X中找到我的用户ID和组?

试图在终端运行这个命令。

sudo chown -R yourid:yourgroup local

然而,我不知道我的ID和我的组是什么,或者在哪里找到它们。有什么办法吗?

答案 (6)

65
65
65
2013-05-02 16:49:08 +0000

在 OS X 上,你的主群组总是 staff,除非你或你的用户目录管理器改变了它。

什么是_主组?默认情况下,用户的主组是该用户创建的所有文件的所有者。


为了在计算机上使用chmod,您可以使用您的数字用户ID(如501),或您的帐户名称(如danielbeck)。后者与您通常在用户界面中看到的用户名不同(例如Daniel Beck)。

您可以使用以下任何一种方式确定您的账户名。

  • 在Finder的标题或侧栏中是你的主目录的名字(除非你自定义了它)

  • 在终端中运行whoami - 所以chown -R $(whoami):staff应该足够了。你也可以用groups $(whoami) | cut -d' ' -f1获得你的主组。

  • 打开 System Preferences “ Users & Groups,必要时解锁窗格,右键单击你的用户名(在 Current User 部分的单一列表条目),然后选择 Advanced Options…。就是新打开的对话窗口中的账户名字段。这个对话框也会显示你的主组。

  • 在终端机中运行id以获得更详细的输出。这将包括你的数字用户ID。它也会列出所有你是成员的组,而不仅仅是你的主组。第一个组是主要组。

42
42
42
2013-11-27 01:56:17 +0000

在终端上使用id命令。它将显示你的用户ID和你所属的组。例如,这里是我的输出,显示我的用户ID(534),组ID(20)和我所属的组(也是20)。

uid=534(galuga) gid=20(staff) groups=20(staff)
16
16
16
2016-08-03 09:47:16 +0000

这将显示你的用户ID。

$ id -u
502

这将显示你的组名。组名在括号内。

$ id
uid=502(whoami) gid=20(staff) groups=20(staff),702(com.apple.sharepoint.group.2),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh)

这将显示你的组名。

4
4
4
2013-05-02 16:42:49 +0000

在終端機中,進入 ~/Documents並執行 ls -la。你的用户名和组会在每个文件/目录旁边列出。

看起来应该是这样的。

drwxr-xr-x 2 username usergroup 4096 Oct 17 2012 Templates
4
4
4
2019-05-14 03:44:29 +0000

如果可以的话,只会评论。我在这个网站上的业力不够。

我不知道为什么有人下架了@callaginn,因为他提出了一个合理的观点。

以下方法是有效的(也可能是shell脚本的最佳选择):

id -u # returns UID

id -un # returns username

id -g # returns primary (a.k.a. effictive) GID

id -gn # returns primary Group Name

更多选择请参见man id

为了回答这个具体的问题,如果我正在编写一个可以在任何环境下运行的脚本,我不会假设默认组staff正在使用,相反,如果我正在编写一个可以为任何用户运行的脚本(无论他们是否修改了他们的系统),我会做如下操作:

chown "$(id -un):$(id -gn)" some_file

只要有可能,最好是平台不可知的(如果不是太多时间上的权衡),因为你以后会产生更少的技术债务。

请注意,chown-R标志应该以最大的信心使用。你可能真的会把你的系统搞得一团糟(虽然值得注意的是,苹果公司自从实施了System Integrity Protection之后,就很难做到这一点)。

考虑一下,比如说,如果你是以chown -R 755 /var而不是chown -R 755 /var/www作为root,并且禁用了System Integrity Protection,我相信你会陷入其中。我不能告诉你什么会先坏,但在达尔文系统上会先坏,但请相信我的话,这不会是美好的。

希望有人觉得这对你有帮助。

2
2
2
2019-05-06 15:55:00 +0000

一个更短的寻找主组的方法。

id -gn