Linux sudo详解

先说一下为什么最近一直在学Linux的相关内容,其实也并没有偏离之前的想法,对于Linux的运用还是很重要的,如果连运维对服务器做了什么都不清楚还谈什么其他操作。

目录

0x01 介绍

0x02 别名

0x03 授权规则

0x04 注意事项

0x05 sudo命令用户行为日志审计

0x01 介绍

sudo的配置文件是/etc/sudoers,在sudoers中每一行就是一个规则,当规则超过一行的话,可以使用“\”来进行续行,它的规则大致可分为两类,一类是别名定义,另一类是授权规则,别名定义并不是必须的,只是在授权规则多的时候会更加方便,授权规则是必须的。

0x02 别名

别名类型主要包括以下四种

Host_Alias  主机别名User_Alias  用户别名Runas_Alias  用户身份别名Cmnd_Alias  命令别名

Host_Alias

主机别名是指定要在哪一个主机上生效,我们一般是不用的,只有在共享的多系统中才会使用到,使用ALL就可以了,它对应的是第一个ALL

定义的格式是这样的

Host_Alias FILESERVERS = fs1, fs2

User_Alias

用户别名是指定生效用户的,它可以针对用户也可以针对用户组,如果是用户组的话,前面需要加%

定义格式是这样的

User_Alias ADMINS = admin, balabala, %groupname

Runas_Alias

用户身份别名即sudo允许切换到的用户身份

定义格式是这样的

Runas_Alias OP = root, wuxin

Cmnd_Alias

命令别名就是定义一组相关命令的集合

定义格式是这样的

Cmnd_Alias PROCESSES = /bin/nice, /bin/kill

那么我们什么时候使用这些别名呢,一般是有多个系统用户,需要进行分类和分层次管理的时候才需要使用,至于如何配置就按照实际需求来进行更改就可以了,其实就是把一大堆的命令内容缩减为简单的变量。

0x03 授权规则

对于规则来说,看看前面的例子就很明确了,之前的文章也提到了每一项所代表的含义,下面举一个例子就很明确了

我们先进行一下编辑操作

然后我们切换到test用户下,查看一下可以执行的命令

可以看到执行权限和可以执行的命令,而且想要切换到root用户是需要密码的,这样就实现了一个简单的权限区分,比如区分开发和运营等的权限

如果我们去掉test用户,在执行sudo的时候就不会运行执行了

0x04 注意事项

1.授权规则里的ALL,必须为大写字母

2.Cmnd_Alias执行命令是有顺序的,命令的顺序是从后向前的,尽量把禁止的命令放在后面

3.如果内容超过了一行一定要使用“\”来换行

0x05 sudo命令用户行为日志审计

sudo命令日志审计,并不记录普通用户的普通操作,而是记录执行sudo命令的用户操作

第一个方法是,通过环境变量及rsyslog服务进行全部日志审计,这样的做的问题就是产生的信息量太大,所以不推荐这么做。

第二个方法,sudo配合rsyslog服务进行日志审计,信息量还是比较少的,效果还可以

第三个方法,在bash解释器程序中嵌入一个监视器,让所有被审计的系统用户使用修改过的bash程序作为解释程序

第四个方法,开源的跳板机jumpserver(python)

第五个方法,花钱买商业版的服务

这里用第二个方法来说明

首先我们先编辑一下rsyslog.conf文件

在其中添加一行代码

然后修改/etc/sudoers文件

然后重启服务,之后就可以看到日志文件了

当然这个是在一台机子的情况下的,也可以通过其他方式来进行集中管理,可以使用rsync+inotify或者定时任务+rsync来将日志推送到日志服务器,我们在实际的渗透中,如果对方服务器的日志是同步日志服务器的话还是很蛋疼的一件事。

如果对你有帮助,请点击在看或者转发

都是对我的一种支持

本文分享自微信公众号 - 无心的梦呓(wuxinmengyi),作者:Vesel无心

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Ubuntu19安装MySQL的坑

    这里安装的话,默认安装的是MySQL5.7的,但是由于兼容性问题,Ubuntu19已经不支持其运行了,包括Ubuntu18也是不支持的。

    无心的梦呓
  • MySQL手工注入简述

    对于MySQL的注入内容,网上有很多的例子,MySQL注入也是我们平时最容易见到的,这里仅仅拿出来几个例子来说明一下。

    无心的梦呓
  • composer安装依赖时报错的处理办法

    0x02 出现“Your requirements could not be resolved to an installable set of package...

    无心的梦呓
  • Ubuntu下安装Python的Tkin

        在Linux下,如果需要编写界面应用,并且此界面应用对性能的要求不是很高,一般可以使用Python解决。Python中可以使用自带的Tkinter库或者...

    py3study
  • 第七天、判断三角形的类型

        根据输入的三角形的三条边判断三角形的类型,并输出它的面积和类型。 C代码: /*第七天、判断三角形的类型*/ #include <stdio.h> ...

    Jack_Cui
  • lodash源码分析之自减的两种形式

    本文为读 lodash 源码的第六篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash

    对角另一面
  • lodash源码分析之自减的两种形式

    这个世界需要一个特定的恶人,可以供人们指名道姓,千夫所指:“全都怪你”。 ——村上春树《当我谈跑步时我谈些什么》 本文为读 lodash 源码的第六篇,后续...

    对角另一面
  • Excel实战技巧62: 获取不重复的值作为数据验证列表项

    “数据验证”(在Excel 2013以前称为“数据有效性”)是Excel中的一项重要功能,它能够提供下拉列表供用户选择输入项,也能限制用户输入符合设定的数据。

    fanjy
  • 一起学Excel专业开发11:2个常用的数据验证技巧

    数据验证(以前称为“数据有效性”)是一项非常有用的功能。使用数据验证,不需要VBA代码,就能检查输入的数据是否满足规则要求,从而保证数据输入的正确性。下面介绍2...

    fanjy
  • 为什么要做用户调研?

    在前面的文章中有写过如何快速的了解一款产品(回看请戳下面链接),但在产品初期可获取的用户反馈相对来说是有限或没有的,那么当我们接到对产品优化的工作时就要主动去了...

    靠谱先生

扫码关注云+社区

领取腾讯云代金券