通过 wheel 组授予 Sudo 访问权限
在这一步中,你将学习一种授予管理权限的标准方法:将用户添加到一个预先配置为拥有 sudo 访问权限的特殊组(通常是 wheel 或 sudo)。这种方法比在 sudoers 文件中添加单个用户条目更易于管理且更具扩展性。我们将继续使用 testuser 账户。
首先,让我们确认 testuser 目前没有 sudo 权限。切换到 testuser 账户。密码是 password。
su - testuser
现在,以 testuser 身份尝试运行一个需要 root 权限的命令,例如带 sudo 的 whoami。系统会提示你输入 testuser 的密码。
sudo whoami
输入密码后,命令将失败。你将看到一条消息,指出 testuser 不在 sudoers 文件中。这是预期的结果。
[sudo] password for testuser:
testuser is not in the sudoers file. This incident will be reported.
现在,输入 exit 返回到你的 labex 用户会话。
exit
接下来,我们需要编辑 sudoers 配置,以向 wheel 组的所有成员授予 sudo 访问权限。编辑此配置最安全的方法是使用 visudo 命令,它会在保存前验证语法,以防止你被锁定在系统之外。
sudo visudo
这将在文本编辑器(通常是 vi 或 nano)中打开 /etc/sudoers 文件。寻找引用 %wheel 组的行。它可能被 # 字符注释掉了。
## %wheel ALL=(ALL) ALL
或者
## %wheel ALL=(ALL:ALL) ALL
你需要通过删除行首的 # 来取消注释。结果应该如下所示:
%wheel ALL=(ALL) ALL
如果你在 vi 编辑器中,使用方向键移动到 #,按 x 将其删除,然后输入 :wq 并按回车键保存并退出。如果你在 nano 中,只需删除 #,按 Ctrl+X,然后按 Y,再按回回车。
现在 wheel 组已被赋权,将 testuser 添加到该组中。使用带有 -aG 选项的 usermod 命令,其中 -a 表示追加(append),-G 指定补充组。
sudo usermod -aG wheel testuser
要验证 testuser 现在是否是 wheel 组的成员,使用 groups 命令:
groups testuser
输出应在 testuser 的组列表中显示 wheel。
testuser : testuser wheel
最后,让我们测试新权限是否生效。切换回 testuser。
su - testuser
再次尝试 sudo 命令。在提示时输入 password。
sudo whoami
这一次,命令应该成功执行并输出 root,确认 testuser 现在拥有 sudo 权限。
[sudo] password for testuser:
root
输入 exit 返回到你的 labex 会话。你已成功通过将用户添加到 wheel 组授予了 sudo 访问权限。