Centos7配置普通用户的sudo命令权限

发布时间 2023-03-22 21:13:11作者: 蓝莓薄荷

sudo英文全称为super user do,意思为以超级用户(root用户)的方式来执行命令。普通用户如果想要获取sudo命令的执行权限,则需要在/etc/sudoers中进行配置。

[root@localhost ~]# ll /etc/sudoers
-r--r----- 1 root root 4328 Sep 30  2020 /etc/sudoers

/etc/sudoers是一个只读文件,不能直接用vi或者vim命令来进行编辑,我们可以使用visudo命令进入/etc/sudoers的编辑页面来修改。(注:只有root用户才有该命令的执行权限)

[root@localhost ~]# visudo

进入编辑页面后,找到如下位置的信息:

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL

以上每一列的含义如下:

  • 第一列:用户名,如rootusers
  • 第二列:等号左边的ALL表示允许从任何主机登录当前的用户账户;等号右边的ALL表示第一列的用户可以切换成系统中任何一个其它用户(如:su users);
  • 第三列:第一列的用户能下达的命令,ALL表示可以下达任何命令。

当我们以普通用户身份(以test为例)登录,在使用sudo命令时报出如下信息:

test is not in the sudoers file.  This incident will be reported.

则说明该用户没有在/etc/sudoers文件中进行配置,因此无法使用sudo命令。

我们可以参考root用户的配置,在/etc/sudoers文件中添加test用户的权限:

test    ALL=(ALL)       ALL

上面的配置在执行sudo命令时会提示输入root密码,而设置成免输入密码的方式如下:

test    ALL=(ALL)       NOPASSWD:ALL

添加完成,保存并退出。

此时再切换到test用户,执行需要root权限的命令,前面添加sudo即可。

[test@localhost ~]$ sudo docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   1 months ago   13.3kB

可以看出,用户test可以正常使用sudo命令了。