当前位置: 首页 > Linux

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

时间:2023-04-06 02:05:21 Linux

背??景在运行Linux系统时,一般不会直接使用root用户。但是,当某些命令需要root权限执行时,往往是通过sudo命令提升当前用户的执行权限来完成的。如果普通用户没有配置相应的配置,在使用sudo命令时,会提示“xxx不在sudoers文件中,这件事会被举报”。本文将带大家练习如何配置sudo命令让普通用户执行权限。sudo命令权限配置sudo的英文全称是superuserdo,即以超级用户(root用户)身份执行命令。用户是否有sudo命令的执行权限取决于是否在/etc/sudoers文件中设置。/etc/sudoers是一个文本文件,有其特定的语法,不要直接使用vim或vi编辑,而是使用visudo命令。需要注意的是只有root用户才有执行该命令的权限。切换到root用户,在命令行输入visudo,可以直接进入/etc/sudoers的编辑页面。[root@iZ2zedonrtl5m2zsh6tr1xZ~]#visudo忽略其他配置信息,直接在底部查看如下信息:#用户权限说明rootALL=(ALL:ALL)ALL#admin组成员可以获得root权限%adminALL=(ALL)ALL#允许sudo组的成员执行任何命令%sudoALL=(ALL:ALL)ALL#有关“#include”指令的更多信息,请参阅sudoers(5):#includedir/etc/sudoers.dubuntuALL=(ALL:ALL)NOPASSWD:ALL解释每一列的含义:第一列代表用户名,如root、ubuntu等;第二列,等号左边的ALL表示允许当前用户账号从任何主机登录;等号右边的ALL表示:第一列的用户可以切换到系统中的任何其他用户;第三列ALL表示:第一列用户root用户可以发出什么命令,ALL表示可以发出任何命令。ubuntu用户第三列有一个NOPASSWD关键字,表示ubuntu用户在请求sudo时不需要输入密码。如果你的用户在切换,如果有警告信息“notinthesudoersfile”,那么检查一下,文件中应该没有配置对应的用户,所以无法使用sudo命令。参考ubuntu用户的配置,将需要提权的用户(比如test_user)添加到/etc/sudoers文件中:test_userALL=(ALL:ALL)ALL#test_user需要提供test_user的密码给使用sudo执行sudo时需要进行以上配置如果提供密码,则不需要提供密码。配置方法如下:test_userALL=(ALL:ALL)NOPASSWD:ALL#test_user需要提供test_user的密码才能使用sudo添加后,esc退出编辑,执行:wq,退出保存。这时候切换到test_user用户,执行需要root权限的命令时,在前面加上sudo即可。[test_user@iZ2zedonrtl5m2zsh6tr1xZ~]$sudodockerps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES903734808a1ehello-world"/hello"大约一个小时前Exited(0)大约一个小时前可以看到happy_jennings,现在可以使用sudo命令正常起来。总结对于普通用户临时提权执行命令的场景,只需要在/etc/sudoers文件中配置即可。网上还有其他的配置方案,但是没有用到visudo命令。而是先将/etc/sudoers文件完全更改,然后修改,最后再改回权限。虽然可以实现同样的修改功能,但是绕的太远了。读完本文的朋友们,您现在已经解锁了新的更方便的命令。博主简介:《SpringBoot技术内幕》技术书籍作者,热爱研究技术,写干货技术文章。公众号:《程序新视野》,博主的公众号,欢迎关注技术交流:请联系博主微信:zhuan2quan