镜像问题:https://unix.stackexchange.com/questions/217300/where-how-is-user-group-information-stored-in-ubuntu 。 (得到答案后我会删除其中之一)
可能有两个地方:/etc/group和 /etc/passwd .
如果我使用命令:adduser [用户名] [组名]
,那么用户将被添加到组中,并且文件/etc/group
将是已更新。
但是,文件 /etc/passwd
未更新。如果我通过groups
命令检查我属于哪个组,我只能看到passwd
文件中声明的组。因此,用户不会添加到基于组的组中这个结果。
我很困惑。
- 分别将组信息写入
/etc/passwd
和/etc/group
有何含义? - 为什么
adduser
只更新group
文件? - 如何通过命令将组添加到
passwd
文件中? - 为什么
groups
从passwd
文件返回组信息,而不是从group
文件返回组信息?
谢谢。
最佳答案
- 在这些传统的文本文件(还有其他方式,例如 LDAP)中,您的主要组转到
/etc/passwd
(例如,用于您的文件的权限)创建),所有其他组都转到/etc/group
。 - 参见 1。
- 这是不可能的,但您可以使用
usermod -g
更改主要组 - 这是一种误解,
groups
显示所有组。但是只有当您开始新 session (新登录)时才会选择新组。您可以使用newgrp
命令,以给定组名称作为您的主要组(您必须是该组的成员)启动 session - 作为副作用,它将查阅用户数据库并更新您的群组列表。
关于linux - Ubuntu 中用户组信息存储在哪里以及如何存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31530362/