Linux下如何配置普通用户的sudo命令权限?

系统 Linux
如果普通用户并未进行配置相应的配置,则在使用sudo命令时会提示“xxx 不在 sudoers 文件中。此事将被报告。本篇文章就带大家实践一下如何对普通用户配置sudo命令执行的权限。

​背景

在Linux系统操作时,通常不会直接采用root用户。但当某些命令需要root权限执行时,往往会通过sudo命令提升当前用户的执行权限来完成。

如果普通用户并未进行配置相应的配置,则在使用sudo命令时会提示“xxx 不在 sudoers 文件中。此事将被报告。“

本篇文章就带大家实践一下如何对普通用户配置sudo命令执行的权限。

sudo命令权限配置

sudo​ 的英文全称是 super user do​,即以超级用户(root 用户)的方式执行命令。用户是否拥有sudo​命令的执行权限,要看是否在于 /etc/sudoers 文件进行了设置。

/etc/sudoers​ 是一个文本文件,有其特定的语法,不要直接用 vim​ 或者 vi​ 来进行编辑,而是采用 visudo 命令。需要注意的是只有root用户有该命令的执行权限。

切换到root用户,命令行输入 visudo​ ,即可直接进入/etc/sudoers 的编辑页面。

[root@iZ2zedonrtl5m2zsh6tr1xZ ~]# visudo

忽略掉其他配置信息,直接查看底部如下信息:

# User privilege specification  
root ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
ubuntu ALL=(ALL:ALL) NOPASSWD: ALL

解释下每一列的含义:

  • 第一列表示用户名,如root​ 、ubuntu 等;
  • 第二列,等号左边的ALL 表示允许从任何主机登录当前的用户账户;
  • 第二列,等号右边的ALL 表示:第一列的用户可以切换到系统中任何一个其它用户;
  • 第三列,ALL​ 表示:第一列的用户能以root用户的身份下达什么命令,ALL 表示可以下达任何命令。
  • ubuntu用户第三列有一个NOPASSWD​ 关键字,表明ubuntu用户在请求sudo 时不需要输入密码。

如果你的用户在切换时,如果出现”不在 sudoers 文件中“的警告信息,那么核查一下,对应的用户应该没有在该文件中进行配置,因此也无法使用 sudo 命令。

参考ubuntu用户的配置,将需要提升权限的用户(比如test_user)添加到 /etc/sudoers 文件中:

test_user  ALL=(ALL:ALL)  ALL   # test_user 使用sudo需要提供test_user的密码

上面配置在执行sudo时需要提供密码,那么不需要提供密码配置方式如下:

test_user  ALL=(ALL:ALL)  NOPASSWD:ALL   # test_user 使用sudo需要提供test_user的密码

添加完毕,esc退出编辑,执行:wq,退出并保存。

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

[test_user@iZ2zedonrtl5m2zsh6tr1xZ ~]$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
903734808a1e hello-world "/hello" About an hour ago Exited (0) About an hour ago happy_jennings

可以看到,现在 sudo 命令已经可以正常使用了。

小结

针对普通用户临时提升权限执行命令的场景,只需在 /etc/sudoers​ 文件中进行配置即可。网络上也有其他的配置方案,但未使用visudo​命令,而是先对 /etc/sudoers 文件进行全变更,然后再进行修改,最后再将权限变更回去。虽然也能实现同样的修改功能,但绕的太远了。读完这篇文章的朋友,现在你已经解锁了新的、更方便的命令。

责任编辑:武晓燕 来源: 程序新视界
相关推荐

2013-10-12 15:45:30

2011-04-12 10:16:18

UNIX权限

2022-08-19 15:02:10

Linuxsu 命令

2010-02-23 16:49:40

CentOS tomc

2013-12-23 13:24:47

Linuxauthbind命令

2010-01-05 10:13:57

Ubuntu普通用户市场

2011-12-12 17:07:43

2021-02-22 10:32:46

云计算云厂商SaaS

2011-02-24 11:11:14

2012-08-02 10:48:03

Windows 8操作系统

2009-04-30 17:29:49

LinuxUbuntuScreen

2019-02-28 09:30:04

Ubuntusudo命令

2009-03-28 09:40:32

Windows 7微软操作系统

2022-01-18 17:57:21

PodmanLinux容器

2019-11-26 10:34:13

Linuxsudo权限命令

2010-07-19 17:22:02

连接到Telnet服务

2019-04-19 11:00:05

Linuxsudo命令

2009-04-20 08:49:29

Windows 7微软操作系统

2021-03-07 00:34:30

大数据互联网技术

2009-12-10 16:53:53

Linux操作系统
点赞
收藏

51CTO技术栈公众号