Ubuntu 中的用户组信息存储在哪里以及如何存储?

Where & How is user group information stored in Ubuntu?

镜像问题:https://unix.stackexchange.com/questions/217300/where-how-is-user-group-information-stored-in-ubuntu。 (得到答案后我会删除其中一个)


可能有两个位置:/etc/group and /etc/passwd.

如果我使用命令:adduser [username] [groupname],那么用户将被添加到组中,然后文件 /etc/group 将被更新。

但是,文件 /etc/passwd 没有更新。如果我通过 groups 命令检查我属于哪个组,我只能看到 passwd 文件中说明的组。因此,不会根据此结果将用户添加到组中。


我很困惑。

  1. 将故事组信息分别写入 /etc/passwd/etc/group 是什么意思?
  2. 为什么 adduser 只更新 group 文件?
  3. 如何通过命令将组添加到passwd文件?
  4. 为什么 groups return 分组信息来自 passwd 文件,而不是 group 文件?

谢谢。

  1. 在这些传统的文本文件中(还有其他方式,例如 LDAP),您的 primary 组转到 /etc/passwd(例如用于您创建的文件的权限),所有其他组转到 /etc/group.
  2. 见 1.
  3. 那是不可能的,但是你可以改变一个主要组usermod -g
  4. 这是一种误解,groups 显示了 所有 组。但是只有在您开始新会话(新登录)时才会选择一个新组。您可以使用 newgrp 命令,它以给定的组名称作为您的 主要组 启动会话(您必须是该组的成员)——作为副作用,它将查询用户数据库并更新您的组列表。