文章目录

  • 什么是sudo?
  • 为什么会用到sudo?
  • sudo:授权普通用户执行root指令(两种方式)
  • 第一种方式:在/etc/sudoers文件中进行配置
  • 第二种方式:将指定用户加入附属组sheel中


什么是sudo?

Sudo 的全称为:super user do。 顾名思义:干超级用户才能干的事!所以Sudo最常用的功能就是提升一个命名的执行权限。

为什么会用到sudo?

sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。

sudo:授权普通用户执行root指令(两种方式)

第一种方式:在/etc/sudoers文件中进行配置

[root@VM-0-3-centos ~]# vim /etc/sudoers.d/90-cloud-init-users 
# Created by cloud-init v. 20.1 on Fri, 01 Apr 2022 11:17:07 +0000

# User rules for root
root ALL=(ALL) NOPASSWD:ALL
boyu ALL=(ALL) NOPASSWD:ALL  #将boyu账号进行授权

参数解释:

1)第一个字段boyu指定的是用户:可以是用户名,也可以是别名。每个用户设置一行,多个用户设置多行,也可以将多个用户设置成一个别名后再进行设置。
2)第二个字段ALL指定的是用户所在的主机:可以是ip,也可以是主机名,表示这个sudo设置后的文件即/etc/sudoers只在这个主机上生效,ALL表示在所有主机上都生效!限制的一般都是本机,也就是限制使用这个文件的主机;如果指定为"192.168.1.88"表示这个文件只有在这台主机上生效,如果拷贝到别的机子上是不起作用的!一般都指定为"ALL"表示所有的主机,不管文件拷到那里都可以用。
3)第三个字段(ALL)括号里指定的也是用户:指定以什么用户身份执行sudo,即使用sudo后可以享有所有账号下的权限。如果要排除个别用户,可以在括号内设置,比如ALL=(ALL,!root,!ops)。也可以设置别名
4)第四个字段ALL指定的是执行的命令:即使用sudo后可以执行所有的命令。也可以设置别名。NOPASSWD: ALL表示使用sudo的不需要输入密码。

测试sudo命令:

[boyu@VM-0-3-centos ~]$ ls -l /etc/shadow
---------- 1 root root 717 Apr  5 16:13 /etc/shadow
#查看文件所属用户

[boyu@VM-0-3-centos ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
#此时使用boyu用户没有权限访问/etc/shadow文件

[boyu@VM-0-3-centos ~]$ sudo cat /etc/shadow
[sudo] password for boyu: 
root:$1$quQVrSAy$l5oTUleCiB0ZsizCwGowb.:19083:0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
#使用sudo命令后,可以执行/etc/shadow文件

第二种方式:将指定用户加入附属组sheel中

1.查看用户账号信息

[boyu@VM-0-3-centos ~]$ id boyu
uid=1000(boyu) gid=1000(boyu) groups=1000(boyu)

2.将指定用户加入附属组sheel中,并确认是否添加成功

[boyu@VM-0-3-centos ~]$ usermod -G wheel boyu
#添加用户boyu到附属组sheel中

[root@VM-0-3-centos ~]# id boyu
uid=1000(boyu) gid=1000(boyu) groups=1000(boyu),10(wheel)
#用户boyu已经加入到sheel中

测试sudo命令:

[boyu@VM-0-3-centos ~]$ ls -l /etc/shadow
---------- 1 root root 717 Apr  5 16:13 /etc/shadow
#查看文件所属用户

[boyu@VM-0-3-centos ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
#此时使用boyu用户没有权限访问/etc/shadow文件

[boyu@VM-0-3-centos ~]$ sudo cat /etc/shadow
[sudo] password for boyu: 
root:$1$quQVrSAy$l5oTUleCiB0ZsizCwGowb.:19083:0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
#使用sudo命令后,可以执行/etc/shadow文件