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

实际项目中,需要在Linux不同用户之间切换,并且不会直接采用root用户权限,因为以root用户身份访问系统有潜在危险,并可能导致系统和数据损害。我们可以用setuid程序,例如su和sudo解决。创建keyuser用户:

[root@localhost ~]# useradd keyuser

su命令

su命令就是用于账号切换的系统命令,其来源于英文单词swich user

[root@localhost ~]# su - keyuser
Last login: Mon Apr 10 22:48:44 CST 2023 on pts/0
[keyuser@localhost ~]$
  • 使用普通用户切换到其他用户时,需要输入密码

  • 使用root用户切换到其他用户时,无需输入密码

注:输入密码时,密码是不显示的,直接输入即可,注意不要输错

sudo命令

sudo 的英文全称是 super user do,即以超级用户(root 用户)的方式执行命令。用户是否拥有sudo命令的执行权限,要看是否在于 /etc/sudoers 文件进行了设置。/etc/sudoers 是一个文本文件,有其特定的语法,不要直接用 vim 或者 vi 来进行编辑,而是采用 visudo 命令。需要注意的是只有root用户有该命令的执行权限。我们可以使用sudo命令,为普通用户的命令进行授权,临时以root身份执行

[root@localhost ~]# visudo
root    ALL=(ALL)       ALL
keyuser ALL=(ALL) NOPASSWD:ALL   # keyuser 使用sudo不需要提供keyuser的密码

每一列解释:

  • 第一列表示用户名,如 rootkeyuser 等;

  • 第二列,等号左边的 ALL 表示允许从任何主机登录当前的用户账户;等号右边的 ALL 表示:这一行行首对一个的用户可以切换到系统中任何一个其它用户;

  • 第三列ALL 表示:当前行首的用户,能以 root 用户的身份下达什么命令,ALL 表示可以下达任何命令。NOPASSWD: ALL表示使用sudo命令时,无需输入密码

切换回普通用户,直接在根目录创建文件夹提示没有权限,使用sudo命令再次在根目录下创建文件夹

[root@localhost ~]# su - keyuser
Last login: Mon Apr 10 23:12:27 CST 2023 on pts/0
[keyuser@localhost ~]$ cd /
[keyuser@localhost /]$ mkdir test
mkdir: cannot create directory ‘test’: Permission denied
[keyuser@localhost /]$ sudo mkdir test
[keyuser@localhost /]$ ll
total 100
drwxr-xr-x    2 root root  4096 Apr 10 23:20 test

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

原文始发于微信公众号(面试技术):Linux下配置普通用户的sudo命令权限

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/186856.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!