对于 id 命令输出中列出的 groups=0(root) 来说,这是多余的吗?

对于 id 命令输出中列出的 groups=0(root) 来说,这是多余的吗?
sudo id
uid=0(root) gid=0(root) groups=0(root)

这里列出的groups=0(root)可能是多余的,gid=0(root)可以表达group的含义的id是0?

答案1

id该命令列出的是什么

  1. 运行用户的有效用户ID和用户名id
  2. 同一用户的有效组ID和组名,
  3. 该用户所属的所有补充(“次要”)组的列表。

在这种情况下,该root用户只属于一个组,即该root组,因此该组被列为有效组以及部分补充组。

在我的 OpenBSD 系统上:

$ doas id
uid=0(root) gid=0(wheel) groups=0(wheel), 2(kmem), 3(sys), 4(tty), 5(operator), 20(staff), 31(guest)

答案2

默认情况下,结果id提供三个值ugG(id 和 name 一起)。

从 Linux 手册页来看,

-u, --user : 只打印有效用户 ID

-g, --group : 只打印有效的组ID

-G, --groups : 打印所有组 ID

这里groups=0(root)表示该用户root属于一个名为 的组root。由于这里没有辅助组root,因此它看起来像是冗余信息。

对于属于多个组的用户,输出将类似于

uid=492(username) gid=492(primary groupname) groups=492(primary group), 493(secondary group)

相关内容