我对 Linux 并不陌生,但我在 Fedora 15 机器上看到了这种奇怪的行为。我想将超级用户添加到名为 的组中thisgroup
。
# usermod -a -G thisgroup root
# groups
# root bin daemon sys adm disk wheel
#
^^thisgroup
缺席了。令人惊讶的是,当我想到编辑时/etc/group
,root
它就在那里!
有人知道为什么groups
没有显示我的新添加内容吗?
答案1
从命令的手册页中groups
:
Print group memberships for each USERNAME or, if no USERNAME is speci‐
fied, for the current process (which may differ if the groups database
has changed)
这正是您的情况:组数据库已更改,但当前进程的组成员身份尚未更新。如果您改为查询用户的组成员身份,root
您将获得正确的结果。
matteo@teomint:~$ sudo usermod -a -G test matteo
matteo@teomint:~$ groups
matteo adm dialout cdrom plugdev lpadmin admin sambashare
matteo@teomint:~$ groups matteo
matteo : matteo adm dialout cdrom plugdev lpadmin admin sambashare test
长话短说:对于当前流程,root
还不是成员thisgroup
;您必须再次登录。
答案2
您需要注销并再次登录 - 没有任何参数,该groups
命令将打印当前进程所拥有的组,当您更改组数据库时这些组不会改变。
如果你这么做了,groups root
那么你就会看到它被列为查阅文件/etc/group
。