您的位置:首页 >聚焦 >

当前热门:Linux下如何配置普通用户的sudo命令权限?

2022-08-04 15:29:02    来源:程序员客栈
背景

在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

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

#UserprivilegespecificationrootALL=(ALL:ALL)ALL#Membersoftheadmingroupmaygainrootprivileges%adminALL=(ALL)ALL#Allowmembersofgroupsudotoexecuteanycommand%sudoALL=(ALL:ALL)ALL#Seesudoers(5)formoreinformationon"#include"directives:#includedir/etc/sudoers.dubuntuALL=(ALL:ALL)NOPASSWD:ALL

解释下每一列的含义:

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

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

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

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

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

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

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

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

[test_user@iZ2zedonrtl5m2zsh6tr1xZ~]$sudodockerps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES903734808a1ehello-world"/hello"AboutanhouragoExited(0)Aboutanhouragohappy_jennings

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

小结

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

SpringBoot:如何优雅地进行响应数据封装、异常处理?

2022-08-03

isEmpty 和 isBlank 的用法区别,至少一半的人答不上来...

2022-08-02

Spring Boot + EasyExcel导入导出,简直太好用了!

2022-08-01

代码真的越改越烂。。

2022-07-31

Redis中的布隆过滤器与布谷鸟过滤器,你了解多少?

2022-07-30

为了实现CI/CD,先来定制一个Docker镜像【实战精华篇】

2022-07-29


如果你觉得这篇文章不错,那么,下篇通常会更好。备注“公众号”添加微信好友(微信号:zhuan2quan)。

▲长按关注”程序新视界“,洞察技术内幕

关键词: 执行命令 需要提供 应该没有

相关阅读