以下命令将列出所有组someUser
(主要组和补充组):
groups someUser
但有没有办法只获取主要组呢?
答案1
参见 FreeBSD手册(信息也适用于 Linux):
组 ID (GID)
组 ID (GID) 是用于唯一标识用户所属的主要组的数字。组是一种根据用户的 GID 而不是 UID 来控制对资源的访问的机制。这可以显着减少某些配置文件的大小,并允许用户成为多个组的成员。建议使用 65535 或更低的 GID,因为较高的 GID 可能会破坏某些软件。
如果是这样,运行id <username>
将显示gid=<primary group>
:
id <username>
uid=1000(<username>) gid=1000(<username>) groups=1000(<username>),4(adm),24(cdrom),27(sudo)
如果您希望命令仅返回主要组名称,请参阅man id
:
-g, --group print only the effective group ID -G, --groups print all group IDs -n, --name print a name instead of a number, for -ugG
所以,id -gn <username>
应该给你你想要的。
答案2
由于groups <username>
将首先列出用户的主要组,因此您可以使用以下命令仅提取指定用户的主要组:
groups <username> | awk '{print $3}'