方案1:
我有2个用户,每个用户都有一个不同的主要组。 对于user1,主要组是具有GID 501的group1。 对于user2,主要组是具有GID 502的group2。
我编辑了/etc/passwd
,以使user1现在具有GID 600。
但是,我忘记了创建一个GID 600的新组(我也没有编辑/etc/group
)。
让我感到惊讶的是,即使我从未使用GID 600创建一个组(因此/etc/group
中没有这样的组)-一切都像存在这样的组一样起作用:
示例:
1)用户1创建新文件test.txt
后,用户2无法读/写该文件。
2)运行ls -l
时,我看到test.txt
属于GID 600。
我想念什么?即使/etc/passwd
和/etc/group
之间不一致,为什么它仍然有效?
方案2:
说我有一个GID 1000的群组。
运行useradd -c "name" test2 -g 1000
,然后运行groups test2
时,我看到test2
的主要组是1000。
但是,在/etc/group
中,我看到的只是test_group:x:1000:
,这意味着test2
不是test_group
的成员。
此外,运行useradd -c "name" test3
后,我在test3:x:8093:
中确实有/etc/group
。
您能解释为什么会这样吗?
谢谢。
答案 0 :(得分:1)
非编程问题,请期待投票...您应该在超级用户或unix.se上询问
也就是说,没有UID编号到GID编号的映射,这些映射要求它们具有相同的值。想一想,当您添加几个用户,然后创建一个或两个供他们共享的组,然后添加更多用户时,会发生什么。 “下一个可用” GID / UID对的值不匹配,但这无关紧要。
当您查看用户的主要组时,由于他们的主要组信息位于groups
文件中,因此他们没有作为成员列入passwd
文件中。
如果您手动更改UID编号或GID编号并进行适当修复,请记住要查找没有所有者或用户组的文件/目录。
此外,当涉及到UID号和GID号时,还有0
(根)和其他所有内容-对它们没有特殊含义。按照共识,“系统用户”类型的帐户数量很少,大多数发行版本开始创建UID / GID为1000的“普通”用户