PHP笔记网

革命尚未成功,同志仍须努力下载JDK17

作者:Albert.Wen  添加时间:2023-12-04 00:51:15  修改时间:2024-12-16 11:20:23  分类:Linux基础  编辑

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

 

 

参考:

  1. Linux中配置sudo用户访问权限