极客进化岛
技术自由路

【Linux】sudo分权管理实战

前言
我们在工作中经常使用普通用户,要使用root权限的时候,使用sudo来让普通用户拥有执行root命令的权限。 今天我们就来聊聊sudo的那些事

sudo 作用

sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等。这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性。

特点:
1. sudo能够限制用户知在某台机器上运行某些命令
2. sudo提供了丰富的日志,详细的记录了每个用户做了什么。
3. sudo的配置文件在/etc/sudoers 下,属性必须为0440

安装与设置

一般sudo命令是默认安装的,如果你的机器里没有,可以使用命令 yum install sudo 来安装

[root@gaosh-64 ~]# yum install sudo

我们来看一下配置文件:

在这里插入图片描述
在上图root下面添加一行 ,给gaosh用户加权限

[root@gaosh-64 ~]# vim /etc/sudoers
gaosh   ALL=(ALL)       ALL

这里表示所有命令的权限,
如果换种写法
gaosh ALL=(ALL) /usr/sbin/useradd 表示普通用户执行时候需要使用全路径
gaosh ALL=(root) /usr/bin/passwd [a-zA-Z]*,! /usr/bin/passwd root # gaosh可以使用root的身份更改密码,但不允许修改root的密码

测试

[root@gaosh-64 ~]# useradd gaosh   ## 创建用户
[root@gaosh-64 ~]# passwd gaosh
[root@gaosh-64 ~]# ssh gaosh@127.0.0.1  ### 登陆
[gaosh@gaosh-64 ~]$ whoami 
gaosh

[gaosh@gaosh-64 ~]$ whoami
gaosh
[gaosh@gaosh-64 ~]$ cat /etc/shadow  ### 查看密码文件
cat: /etc/shadow: 权限不够
[gaosh@gaosh-64 ~]$ sudo cat /etc/shadow
[sudo] gaosh 的密码:
root:$6$f2KQZZx2$gVznwJlWK/0T4SI/sH/GOg0IPpYw97hqXuKZCPxxhi2oUWgO0xIco2XCukVI2.kdKvCA//zDbbKNfrC4SM7Mv/:18466:0:99999:7:::

使用sudo,可以看到输入密码之后,就能查看/etc/shadow了

注意事项

我们在上面修改 /etc/sudoers 直接强制修改是可以的,有时候我们也可以先给与写权限,然后在修改

chmod u-x /etc/sudoers

但是这种方法给了权限之后,不要忘了再把权限去掉

chmod u-w /etc/sudoers

查看日志文件

[root@gaosh-64 ~]# tail /var/log/secure ## 查看日志的后十行

在这里插入图片描述
可以看到刚刚执行的命令,已经使用root的情况。

常用参数

|参数|含义

V |显示版本号信息
h |显示版本编号及指令的使用方式说明
l|显示出自己的权限
v|设置询问密码的时间
s|执行环境变数中的shell中所指定的shell,一般指的是passwd里指定的shell

总结

sudo的使用相对简单,我们在工作中主要是对用户和用户的权限做把控,权限管理是运维安全的第一步。

赞(0)
未经允许不得转载:极客进化岛 » 【Linux】sudo分权管理实战