如果我将自己添加到一个组中,它仅适用于新启动的进程。事实上,它的限制比这更多;它似乎仅适用于新登录。我不确定确切的机制是什么,但这不是我的问题(尽管我对此也很好奇)。
我的问题是:是否可以更新我的群组成员身份在当前shell进程中?
我怀疑答案是否定的。
一个例子(这不是直接复制粘贴):
$ groups ; groups kst
kst oldgroup1 oldgroup2
kst : kst oldgroup1 oldgroup2
$ sudo adduser kst newgroup
[sudo] password for kst:
Adding user `kst' to group `newgroup' ...
Adding user kst to group newgroup
Done.
$ groups ; groups kst
kst oldgroup1 oldgroup2
kst : kst oldgroup1 oldgroup2 newgroup
$
之后adduser
,我的帐户是 的成员newgroup
,但该成员身份并未反映在当前 shell 进程中。
显而易见的解决方案是注销并重新登录,但这很不方便。