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

Sta*_*ers 78 terminal user-accounts macos

尝试在终端中运行此压缩扩展:

sudo chown -R yourid:yourgroup local
Run Code Online (Sandbox Code Playgroud)

但是,我不知道我的 ID 和我的组是什么,也不知道在哪里可以找到它们。有任何想法吗?

Dan*_*eck 77

在 OS X 上,staff除非您或您的用户目录管理员更改了它,否则您的主要组始终是。

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


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

您可以使用以下任一方法确定您的帐户名称:

  • 它是 Finder 标题或侧栏中的主目录名称(除非您对其进行了自定义)

  • whoami在终端中运行——这样chown -R $(whoami):staff就足够了。您还可以使用groups $(whoami) | cut -d' ' -f1.

  • 打开System Preferences » Users & Groups,必要时解锁窗格,右键单击您的用户名(当前用户部分中的单个列表条目),然后选择Advanced Options...。它是新打开的对话窗口中的字段帐户名称。此对话框还会显示您的主要组。

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

  • 您可以在与 posix shells 和 csh 兼容的 oneliner 中使用 `id`,而不是使用 `whoami`。`chown -R \`id -u\`:\`id -g\` 文件夹` (4认同)

小智 48

使用id终端中的命令。它将显示您的 uid 和您所属的组。例如,这是我的输出,其中显示了我的用户 ID (534)、组 ID (20) 和我所属的组(也是 20)。

uid=534(galuga) gid=20(staff) groups=20(staff)
Run Code Online (Sandbox Code Playgroud)


小智 27

这将显示您的用户名。

$ id -u
502
Run Code Online (Sandbox Code Playgroud)

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

$ 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)
Run Code Online (Sandbox Code Playgroud)


小智 8

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

我不知道为什么有人反对@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
Run Code Online (Sandbox Code Playgroud)

查看man id更多选项。

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

chown "$(id -un):$(id -gn)" some_file
Run Code Online (Sandbox Code Playgroud)

尽可能与平台无关(如果时间权衡不是太多)总是更好,因为您以后会承担更少的技术债务。

请注意,应该以最大的信心使用chown's-R标志。你可能真的搞砸了你的系统(尽管值得注意的是,自从他们实施了 Apple 就很难做到System Integrity Protection)。

考虑一下,例如,如果您chown -R 755 /var不是chown -R 755 /var/www以 root身份而不是System Integrity Protection残疾人,我相信您会参与其中。我不能告诉你什么会先坏,但它会在达尔文系统上先坏,但请相信我的话,它不会很漂亮。

希望有人觉得这有帮助。


小智 5

在终端中,转到~/Documents并运行ls -la。您的用户名和组将列在每个文件/目录旁边。

它应该是这样的:

drwxr-xr-x  2 username usergroup  4096 Oct 17  2012 Templates
Run Code Online (Sandbox Code Playgroud)


小智 5

一种更短的查找主要组的方法:

id -gn
Run Code Online (Sandbox Code Playgroud)