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


59

尝试在终端中运行此compand:

sudo chown -R yourid:yourgroup local

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

Answers:


61

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

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


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

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

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

  • whoami在Terminal中运行–因此chown -R $(whoami):staff就足够了。您也可以使用来建立主要小组groups $(whoami) | cut -d' ' -f1

  • 打开系统偏好设置»用户和组,必要时解锁窗格,右键单击您的用户名(“ 当前用户”部分中的单个列表条目),然后选择“ 高级选项”。这是新打开的对话框窗口中的“ 帐户名称 ”字段。此对话框还显示您的主要组。

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


3
除了使用之外whoami,您还可以id在与posix shell和csh兼容的oneliner中使用。chown -R `id -u`:`id -g` FOLDER
fd0

如果您使用LDAP身份验证,则您的用户名不一定是staff。无论如何,我的Mac OS X上都不行。
Sridhar Sarnobat,2015年

1
@ Sridhar-Sarnobat我在回答的第一句话的后半部分谈到这一点。
丹尼尔·贝克

42

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

uid=534(galuga) gid=20(staff) groups=20(staff)

15

这将显示您的用户名。

$ 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

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

它看起来应该像这样:

drwxr-xr-x  2 username usergroup  4096 Oct 17  2012 Templates

非常简单明了,谢谢。
teradyl

3

我只会评论。我在这个网站上没有足够的业力。

我不知道为什么有人反对@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标志。您可能真的会弄乱您的系统(尽管值得注意的是,自从实施以来,Apple很难做到这一点System Integrity Protection)。

例如,考虑一下,如果您chown -R 755 /var不是chown -R 755 /var/wwwSystem Integrity Protection残障人士为根,我相信您会这样做的。我无法告诉您什么将首先中断,但是在达尔文系统上它将首先中断,但是请您相信我说的不是很好。

希望有人发现这有帮助。


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.