该群组名称的群组ID是什么?


27

如何获取给出组名的组ID GID。

输出例如:

Group adm with GID=4

Answers:


41

使用getent代替人工阅读处理组和用户信息的命令,/etc/passwd/etc/groups等本身使用该系统/etc/nsswitch.conf来决定它从获取信息,并在文件中的设置可以通过其他渠道覆盖。getent遵守此配置。getent以与文件相同的格式打印数据(无论源如何),因此您可以按照与解析相同的方式来解析输出/etc/passwd

getent group sudo | awk -F: '{printf "Group %s with GID=%d\n", $1, $3}'

请注意,对于用户名,这要容易得多。用途id

$ id -u lightdm
105

好,awkperl= 短)
AB 2015年

20

这可以简单地通过以下方式完成cut

$ cut -d: -f3 < <(getent group sudo)
27

getent group sudosudo将从/etc/group文件中获取有关组的行:

$ getent group sudo
sudo:x:27:foobar

然后,我们可以取以分隔的第三个字段:

如果您需要相应的输出字符串,请在echo以下命令中使用命令替换:

$ echo "Group sudo with GID="$(cut -d: -f3 < <(getent group sudo))""
Group sudo with GID=27

% echo "Group cdrom with GID="$(cut -d: -f3 < <(getent group sudo))"" Group cdrom with GID=27,请更通用=)
AB

1
为什么要进行流程替代?这有什么错GID="$(getent group cdrom | cut -d: -f3)"
kos 2015年

@kos我不喜欢在子外壳中运行东西,除非必须这样做.....
heemayl 2015年

@AB编辑...
heemayl

但这是POSIX ...:'(不,只是开个玩笑,我真的不知道区别。+1
kos 2015年

1

总是会收到更复杂的答案-我从诚实地阅读它们中学到了很多东西。

我进入此页面是因为我正在寻找邮件组的组ID,并且不知道该信息的存储位置。

您的答案很棒-这是我想出的简单答案

def @ fourof4:/ home $ cat / etc / group | grep邮件

邮件:x:8:

我知道它不会对ID进行分类,但是它可以达到我的目的。

Blockquote尝试:awk -F:'/ sudo / {print“ Group” $ 1“ with GID =” $ 3}'/ etc / group – 15年6月23日,AB在15:51 Blockquote

我看到除了我引用的内容以外,还提到了这一点。

这就是引导我访问该文件的原因。
谢谢并继续以您希望的任何形式喂给我优秀的食物!def


0

使用perl单线:

% perl -ne '@elements=(split /:/); printf "Group %s with GID=%s\n",$elements[0],$elements[2]' <<< $(getent group sudo)
Group sudo with GID=27

或更短(更好)

% perl -F/:/ -ane 'printf "Group %s with GID=%s\n",$F[0],$F[2]' <<< $(getent group sudo)
Group sudo with GID=27

2
我很确定perl可以为您完成拆分,我认为-For -l选项可以做到。
muru

0

需要的技巧:(也许仍然有更好的答案)

awk -F\: '{print "Group " $1 " with GID=" $3}' /etc/group | grep "group-name"

比较简单的版本(感谢@AB):

awk -F\: '/sudo/ {print "Group " $1 " with GID=" $3}' /etc/group 

例:

$ awk -F\: '{print "Group " $1 " with GID=" $3}' /etc/group | grep sudo 
Group sudo with GID=27

1
试试这个:awk -F\: '/sudo/ {print "Group " $1 " with GID=" $3}' /etc/group
AB

参见UUOC
kos
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.