当我尝试在bash中为root用户获取groups
时,我会收到root
作为输出(这是预期且显而易见的)。但是,我正在查看/etc/group
,我可以看到root组中根本没有提到任何用户。当我试图通过以下代码获取root
组的组信息时:
group* groupInfo = getgrgid(0);
组成员列表groupInfo->gr_mem
为空。
如何获得真实的组成员列表以及为什么root用户既未在/ etc / group中也未在gm_mem
成员group
中提及?
对于mbratch的评论: 我在Open Suse和Ubuntu上遇到过这个问题。尽管如此,即使用户确实属于具有适当名称的组,我也看不到到目前为止确定这一事实的方法。
答案 0 :(得分:2)
/etc/group
文件仅用于设置辅助用户组。 主要组保存在/etc/passwd
中。这就是为root
用户不在root
中的/etc/group
组中的原因:root
是root
用户的主要组
要获取此信息,您应使用getpwuid
。