我可以列出“系统”组名和它们各自的名称吗?


15

我知道有诸如“ Staff”和“ Admin”之类的组名,但是只有这些吗?我怀疑root用户也应该被分组。使用该命令可以dscacheutil -q user告诉我root的编号-0。如果用户帐户是admin,则不是在“ Admin”和“ Staff”组中吗?

通过运行命令ls -la /Users,我得到以下输出:

Nicholass-MacBook:~ Ee$ ls -la /Users
total 32
drwxr-xr-x  12 root     admin    408 Nov  3 15:11 .
drwxr-xr-x@ 35 root     wheel   1258 Oct 29 20:21 ..
-rw-r--r--@  1 root     admin  12292 Oct 27 09:02 .DS_Store
-rw-r--r--   1 root     wheel      0 Aug 25 16:58 .localized
drwxrwx---   5 root     admin    170 Nov  3 08:00 Deleted Users
drwxr-xr-x+ 21 Ee       staff    714 Nov  3 08:06 Ee
drwx------+ 84 root     admin   2856 Oct 26 06:49 Ee (Deleted)
drwxr-xr-x+ 11 EeJ      staff    374 Nov  3 15:07 EeJ
drwxr-xr-x+ 14 900      admin    476 Oct 24  2012 Ee******** (Deleted)
drwxr-xr-x   3 root     admin    102 Oct 27 06:50 Old Ee (frm Snow Leopard)
drwxr-xr-x+ 11 ParAcnt  staff    374 Nov  3 15:11 ParAcnt
drwxrwxrwt   6 root     wheel    204 Nov  1 18:18 Shared

Answers:


22

该命令dscacheutil -q group将输出所有组及其名称,ID号和成员列表。请注意,当我说它将输出所有组时,我的意思是所有组,包括内置系统的凡人都不曾想见过。我只是说,不要惊吓单用户系统有这么多的组。

root因为超级用户本身就在一个组中,并且隐式是其他所有组的成员。任何用户帐户都可以是多个组的成员。在我的系统上,的唯一成员staffroot;管理员都在admin组中。wheel是您经常在某些系统文件中看到的另一个组名;在Linux系统上,这是一个流行的组名,用于分配给文件,以便管理员可以编辑文件而无需使用中的密码sudo

还应注意,Mac OS X支持访问控制列表,该列表提供了比传统Unix权限更精细的文件权限控制。+文件权限列表中的IIRC 表示存在与文件关联的此类扩展权限。


13

上市的替代方法groups及其gid

列表按组名排序:

dscl . list /Groups PrimaryGroupID

列表按组别排序:

dscl . list /Groups PrimaryGroupID | tr -s ' ' | sort -n -t ' ' -k2,2

列出成员组:

dscl . list /Groups GroupMembership

注意:除了,也dscacheutil不会dscl列出该组的成员。使用确认的成员所属的组。staffrootdsmemberutilstaff

使用uid 501的用户示例:

dsmemberutil checkmembership -u 501 -g 20

1
哇,有用的命令好编译!
吴永伟
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.