Debian 10 中的 Sudo 让我抓狂。我有一个干净的、普通的 Debian 10 安装。在安装过程中,我设置了 root 密码并创建了一个普通用户,我们将他命名为“tom”。
我以 Tom 身份登录,打开终端并尝试将 Tom 添加到 sudo:
su
[entering root password]
whoami
[root]
/usr/sbin/usermod -a -G sudo tom
没有错误,一切看起来都很好。测试它:
su tom
whoami
[tom]
sudo echo "hello";
[hello]
按预期工作。接下来,我关闭终端。在此桌面会话中仍以 Tom 身份登录,我打开一个新终端:
sudo echo "hello";
[error: tom is not sudoers file]
sudo add 不会持久存在,一旦我关闭终端,它就会消失。我可以使用“groups”命令确认这一点。在执行上述命令序列之后,它成功地将“tom”列为 sudo 组的一部分。关闭终端并打开新终端后,“groups”显示“tom”不属于 sudo 组。
为什么我的更改没有保留?
(可能不相关的说明是,尽管我确定密码是正确的,但我无法使用我的 root 帐户直观地登录系统)。
答案1
您的更改正在持久化,您可以通过运行来验证这一点
grep sudo /etc/group
它应该显示tom
为 group 的成员sudo
。
发生的情况是您的用户组没有被重新加载。当您运行时su
,您将再次有效登录,并且生成的 shell 将设置tom
为组的成员sudo
。但您的桌面会话不会,并且直到您注销并再次登录之前都不会,或者甚至可能不会(例如,如果您的 systemd 用户会话仍然存在)。
答案2
您需要注销并重新登录。