如何在redhat中列出带有gid的组?

如何在redhat中列出带有gid的组?

我首先使用以下方式列出了组:

groups 

我使用添加组

groupadd -g 300 oinstall
groupadd –g 500 dba

然后当我这样做时

groups 
root bin daemon sys adm disk wheel sfcb

我无法找到我添加的群组。如何列出带有组 id 的组?另外,如果我尝试再次添加它,它会说组已经存在。

答案1

groups命令列出用户当前所属的组,而不是系统上所有可用的组。您可以使用该命令按名称或 gid 查找组getent

getent group oinstall
getent group 500

要显示所有组,只需将搜索查询从命令中删除即可:

getent group

答案2

您可以通过使用列出组,getent或者如果不存在,请查看/etc/group

运行命令时,GID 是输出中的第三个值,例如:

$ getent group
man:x:15:
audio:x:63:
nobody:x:99:
users:x:100:
<--snipped-->
utmp:x:22:

因此,要仅列出组名及其 GID,请使用awk打印所需的列,如下所示:

$ getent group | awk -F ":" '{ print $1,$3 }'
man 15
audio 63
nobody 99
users 100
<--snipped-->
utmp 22

也可以看看http://man7.org/linux/man-pages/man1/getent.1.html

getent在不存在的情况下。

$ grep $group /etc/group

GID 是输出中的第三个值。例如

$ grep users /etc/group
users:x:100:

在上面,组用户的 GID 是 100。要仅获取组名称和 GID,您可以使用 awk 和 grep,如下所示:

$ cat /etc/group | awk -F ":" '{ print $1,$3 }' 
man 15
audio 63
nobody 99
users 100
<--snipped-->
utmp 22

请注意,对于设置为使用外部身份验证(如 LDAP)的系统,所有组都不会出现在 /etc/group 文件中。也可以看看http://www.cyberciti.biz/faq/understanding-etcgroup-file/

相关内容