文章目录
什么是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文件