Linux:如何从组名获取组ID?反之亦然?

53

我想要获取特定组名的组ID。在Linux/UNIX系统中是否有该命令?如果我想要反过来做——从组ID获取组名,这也可能吗?


1
从另一个社区的组名获取groudid的答案:https://askubuntu.com/a/639998/1577458,该答案还在评论中提供了更明确的版本(不使用短标签)`getent group root | cut --delimiter ':' --fields 3) - K. Bogdan
5个回答

64
getent group 124
# mysql:x:124:

getent group mysql
# mysql:x:124:

24

给定gid,以下是获取组名的方法:

getent group GID | cut -d: -f1

给定组名,我们获得gid:

getent group groupname | cut -d: -f3

更新:

可以使用一个bash内置命令代替cut: 例如,获取组ID 123的组名。

groupid=123 IFS=: read GROUP_NAME REST <<<`getent group $groupid` echo $GROUP_NAME


2
您可以使用以下命令:
awk -F\: '{print "Group " $1 " with GID=" $3}' /etc/group | grep "group-name"

或者

cat /etc/group | grep group-name

其中group-name是您要搜索的组名称。


1

-6

我在这里看到链接,你可以使用id命令从组名或用户名中获取gid或uid。

id -u username

并且

id -g groupname

7
id 命令的 man 手册说明最后一个参数是用户名,因此使用 id -g foo 可以显示用户 "foo" 的主要组名称。 - CDuv
https://explainshell.com/explain?cmd=id+-G+-g+-u - Friedrich -- Слава Україні

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接