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


42

我首先使用列出了这些组:

groups 

我使用添加了群组

groupadd -g 300 oinstall
groupadd –g 500 dba

然后当我做

groups 
root bin daemon sys adm disk wheel sfcb

我找不到添加的群组。如何列出具有群组ID的群组?另外,如果我尝试再次添加它,则表明组已经存在。

Answers:


67

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

getent group oinstall
getent group 500

要显示所有组,只需将搜索查询保留在命令之外:

getent group

2
@Kitex,因为您创建了组,但您不是该组的成员。您需要将用户添加到组中,然后注销并重新登录,以使其与groups命令一起显示。
jordanm

1
@kitex我更新了措辞,希望能帮助您理解。
jordanm

2
@Kitex更新了答案
jordanm

3
@kinkajou有很多专业经验,并且在诸如此类和IRC Linux支持等网站上花费了大量时间。我一直是专业人士和发烧友大约8年了。我认为成为发烧友是重要的一环,因为您更容易记住自己关心的事情。
jordanm'2

1
@kinkajou我在家中使用Gnu / Linux进行所有计算。台式机,笔记本电脑,树莓派。自1991年以来,我一直在使用它(最初是Solaris,Dec,HP上的Gnu)。我不断增加自己的知识;无需将其清除,然后重新启动(与Microsoft的Windows一样)。
ctrl-alt-delor

9

您可以使用列出群组,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/


6
组并不总是存储在中/etc/group。它们可以存储在NIS,LDAP等中
。– jordanm

1
请勿与ldap组一起使用,请使用getent group
MUY比利时
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.