Sudo 不会在 Debian 10 上持续存在

Fer*_*Fer 0 debian sudo group

Debian 10 中的 Sudo 使我发疯。我有一个干净的 Debian 10 安装。在安装过程中,我设置了 root 密码并创建了一个普通用户,让我们将他命名为“tom”。

以 Tom 身份登录,我打开一个终端并尝试将 tom 添加到 sudo:

su  
[entering root password]  
whoami  
[root]  
/usr/sbin/usermod -a -G sudo tom  
Run Code Online (Sandbox Code Playgroud)

没有错误,一切似乎都很好。测试它:

su tom  
whoami  
[tom]  
sudo echo "hello";  
[hello]  
Run Code Online (Sandbox Code Playgroud)

按预期工作。接下来,我关闭终端。在此桌面会话中仍以 Tom 身份登录,我打开一个新终端:

sudo echo "hello";  
[error: tom is not sudoers file]  
Run Code Online (Sandbox Code Playgroud)

sudo add 没有保留,只要我关闭终端,它就消失了。我可以用“groups”命令确认这一点。在上述命令序列之后,它成功地将“tom”列为 sudo 组的一部分。关闭终端并打开新终端后,“groups”将“tom”显示为不是 sudo 组的一部分。

为什么我的更改没有持久化?

(在一个可能不相关的注释中,尽管我知道密码正确,但我无法使用我的 root 帐户直观地登录系统)。

Ste*_*itt 7

您的更改正在持久化,您可以通过运行来验证

grep sudo /etc/group
Run Code Online (Sandbox Code Playgroud)

应该显示tom为组的成员sudo

发生的情况是您的用户组没有被重新加载。当您运行时su,您有效地再次登录,并且生成的 shell 被设置tom为 group 的成员sudo。但是您的桌面会话不是,并且在您注销并再次登录之前不会,或者甚至可能不会(例如,如果您的 systemd 用户会话仍然存在)。