我想知道为什么需要重新启动才能应用我所做的更改。
我指的是使用
adduser username sudo
我使用 Ubuntu 12.04.1 LTS“服务器”。
答案1
您无需重启系统,但你必须登出和登录再次。仅在登录时评估组成员身份。
如果您处于不方便注销和重新登录的情况(例如,SSH 会话),那么您可以使用su - <user>
(或等效地su -l <user>
或su --login <user>
)生成登录子 shell,但它只能在该子 shell 中工作。
(感谢 steeldriver 指出这一点)。
答案2
除了以前的答案之外:
您还可以通过说 来“激活”给定终端中的某个组。newgrp name_of_group
一个例子:
% whoami
kindaro
% groups # Where we start at.
shared nix wheel kindaro
% sudo usermod --append --groups audio kindaro # Let us add a group membership.
% groups # As you see, nothing changed yet.
shared nix wheel kindaro
% newgrp audio
% groups # Now the change is in effect.
audio shared nix wheel kindaro
此命令的作用是创建一个新的 shell 进程来覆盖已运行的 shell 进程。如果您不希望在 shell 中再运行 shell,您可以执行exec newgrp ...
以下命令。
答案3
进行测试,从您的终端呼叫
id
它将向您显示当前登录会话的用户名和组。这是唯一可以确定您的更改是否正确的方法。输出将类似于
uid=102(安德鲁) gid=101(用户) groups=101(用户),14(系统管理员)