sudo 用户是 Linux 系统的普通用户,具有管理员或 root 权限,可执行管理任务。但是,在默认情况下,Linux 中的所有普通用户都不是 sudo 用户,root 用户必须通过将用户添加到 wheel group 中,手动为其分配 sudo 权限。
在CentOS发行版中,在安装过程中已经创建了一个 wheel
组,并且在系统的 /etc/sudoers
文件中已经定义了它的条目。
# grep -i "^[%wheel]" /etc/sudoers %wheel ALL=(ALL) ALL
当任何普通用户被添加到这个 wheel 组中时,该用户将获得 sudo 权限,并可以通过在命令前面使用 sudo 来运行所有管理命令。
如何在 CentOS 中,创建一个新的 sudo 用户?
1、以 root 身份登录到系统
以 root 用户登录系统,如果您已经以普通用户登录,则切换到 root 用户,使用以下命令
$ su root
2、使用 UserAdd 命令创建常规用户
(1) 在创建一个新的普通用户时,指定 wheel 为用户组。
语法:useradd -G wheel 用户名
假设我们要创建一个名为 sysadm 的用户,运行以下 useradd 命令
# useradd -G wheel sysadm
使用下面的 passwd 命令为上面新创建的用户创建密码
# echo "P@##DW0$Ds" | passwd sysadm --stdin
备注:将密码字符串替换为需要设置的用户密码
(2) 将一个现有的普通用户添加到 wheel 组,使用以下命令
语法:usermod -aG wheel 用户名
假设我们要将现有的用户 user_blog 添加到 wheel 组
usermod -aG wheel user_blog
运行以下命令验证用户是否属于 wheel 组
# id sysadm uid=1000(sysadm) gid=1000(sysadm) groups=1000(sysadm),10(wheel)
3、测试 Sudo User
要确认新创建的用户是否具有 sudo 权限,请运行两个管理命令,不要忘记在命令前输入 sudo
首先切换到普通用户或以普通用户登录,并执行以下命令
# su sysadm $ sudo whoami root $ $ sudo dnf install -y net-tools
以上确认用户具有 sudo 权限,可以运行管理命令。如果您已经仔细注意到,我们必须为通过 sudo 执行管理命令指定密码。
如果您想在不输入密码的情况下运行 sudo 命令,需要编辑 /etc/sudoers
文件,注释掉行 "%wheel ALL=(ALL) ALL" 以及 打开行 "# %wheel ALL=(ALL) NOPASSWD: ALL"
vim /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 运行管理命令,那么它将不会提示输入密码。
此时,如果想(无需密码地)切换到root账号,运行以下命令即可:
sudo su #或 sudo -i
参考: