Sudo 用户是 Linux 系统的普通用户,具有管理员或 root 权限,可执行管理任务。但是,在默认情况下,Linux 中的所有普通用户都不是 sudo 用户,root 用户必须通过将用户添加到 wheel group 中,手动为其分配 sudo 权限。
在 Red Hat Enterprise Linux、Rocky Linux 和 AlmaLinux 等 RHEL 发行版中,在安装过程中创建了一个 wheel 组,并且在系统的 sudoers 文件中已经定义了它的条目。
# grep -i "^[%wheel]" /etc/sudoers
%wheel ALL=(ALL) ALL
#
当任何普通用户被添加到这个 wheel 组中时,该用户将获得 sudo 权限,并可以通过在命令前面使用 sudo 来运行所有管理命令。
在这篇文章中,我们将逐步学习如何在 RHEL、Rocky Linux 和 AlmaLinux 操作系统上创建一个新的 sudo 用户。
(1) 以 root 身份登录到系统
以 root 用户登录系统,如果您已经以普通用户登录,则切换到 root 用户,使用以下命令
$ su - root
(2) 使用 UserAdd 命令创建常规用户
在创建一个新的普通用户时,指定 wheel 为辅助组。
语法: useradd -G wheel
假设我们要创建一个名为 sysadm 的用户,运行以下 useradd 命令
# useradd -G wheel sysadm
使用下面的 passwd 命令为上面新创建的用户创建密码
# echo "P@##DW0$Ds" | passwd sysadm --stdin
备注: 将密码字符串替换为需要设置的用户密码
将一个现有的普通用户添加到 wheel 组,使用以下命令
语法:usermod -aG wheel
运行以下命令验证用户是否属于 wheel 组
# id sysadm
uid=1000(sysadm) gid=1000(sysadm) groups=1000(sysadm),10(wheel)
#
(3) 测试 Sudo User
要确认新创建的用户是否具有 sudo 权限,请运行两个管理命令,不要忘记在命令前输入 sudo
首先切换到普通用户或以普通用户登录,并执行以下命令
# su - sysadm
$ sudo whoami
[sudo] password for sysadm:
root
$
$ sudo dnf install -y net-tools
以上命令的输出如下所示
以上确认用户具有 sudo 权限,可以运行管理命令。如果您已经仔细注意到,我们必须为通过 sudo 执行管理命令指定密码。
如果您想在没有密码的情况下运行 sudo 命令,需要编辑 sudoer 文件,注释掉行 “%wheel ALL=(ALL) ALL” 以及行 “# %wheel ALL=(ALL) NOPASSWD: ALL”
# vi /etc/sudoers
保存并退出文件
另外一个方法就是在目录 /etc/sudoers.d 的中创建一个文件,并添加以下条目
User_Name ALL=(ALL) NOPASSWD: ALL
运行以下 echo 命令以完成上述任务
$ su -
# echo -e "sysadm\tALL=(ALL)\tNOPASSWD: ALL" > /etc/sudoers.d/sysadm
# cat /etc/sudoers.d/sysadm
sysadm ALL=(ALL) NOPASSWD: ALL
#
现在,我们通过 sudo 运行管理命令,那么它将不会提示输入密码。