实际项目中,需要在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的密码
每一列解释:
-
第一列表示用户名,如
root
、keyuser
等; -
第二列,等号左边的
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