sudo

为了收拾su命令的烂摊子

  1. 普通用户要切换root,必须要知道root密码,那么相当于人人都有了核按钮,那是绝对不允许的
  2. 用su切换到root,无法对是谁要求root权限的身份进行控制,拿到root权限就可以获得超级用户的所有权限,为所欲为,更改root密码,让真正的root管理员没法管理

  把某些超级权限分类有针对性授权给指定普通用户,指定的普通用户不需要知道root密码就可以得到root授权的操作,集权式管理

visudo  编辑/etc/sudoers文件,有语法检查

/etc/sudoers

  root    ALL=(ALL)       ALL           用户名、允许ip机器名单、允许切换用户名单、命令绝对位置

需求:

  给 beimen 一个useradd的命令权限

which useradd    # 输出useradd命令绝对路径
visudo # 进入编辑配置文件,会检查语法 # 按格式写入 beimen ALL=(ALL) /usr/sbin/useradd # 用户组 机器=(授权使用哪个角色的权限) # 当有多条命令用逗号隔开,还可以 NOPASSORD:ALL,不要密码登录

  

  

su - beimen    # 切换到beimen角色
sudo -l # /查看拥有的 sudo权限,需要输入当前用户密码,有效期为5分钟,/vaf/db/sudo
sudo useradd chuixue        # 添加用户吹雪

通过sudo授权管理系统: 让用户权限最小化原则,还可以审计用户使用sudo的提权操作命令

sudo命令相关参数:

-l     查看当前用户授权命令

-c 语法检查,每次visudo之后,通过 visudo -c 进行语法检查

-u    指定某个身份用户执行

-v    检验时间戳

-k    删除时间戳

主机别名:

  Host_Alias

  生产环境使用ALL,其实是逻辑上的主机组,多台服务器共享一个 /etc/suders时候会用到这个主机别名,授权在那个主机上生效,一个配置文件在多个主机上使用,现在都是单机

用户别名:

  User_Alias

  当用户组和用户比较大时候,组前面需要添加%,当对用户别名授权权限时候,相当于给这一类用户和组授权

用户身份别名:

  Runas_Alias

  sudo执行可以切换的身份,一般为root

命令别名:

  Cmnd_Alias

  将命令分类,通过别名可以授权多个指定的命令

什么情况下使用别名?

  工作中一般有多个系统用户,需要分类、分层次管理用户的时候

  把用户和组进行分类,各自对应不同的别名,把命令依据需要对应的权限范围分类,然后将这两个类进行连线

  分为身份权限和命令权限,按岗位需求进行授权

什么是sudo日志审计?

并不记录普通用户的普通操作,而是记录那些sudo命令的用户操作

生产环境日志审计解决方案?

  1. sudo配合rsyslog服务,进行日志审计
  2. bash解释器程序里嵌入一个监视器
  3. 齐治堡垒机,商业软件
  4. 开源跳板机,jumpserver和CrazyEye

sudo日志审计:

rpm -qa sudo rsyslog         # 查询是否安装

echo -e "Defaults\tlogfile=/var/log/sudo.log" >> /etc/sudoers      # 追加一行

su - beimen          # 切换到beimen用户下

sudo useradd chuixue        # 执行sudo命令,添加用户,需要输入密码

su -                             # 切换到root用户

cat /var/log/sudo.log      # 查看 beimen使用sudo的记录,无论是成功执行还是没有成功执行的名

# 将会看到beimen用户添加用户日志,时间,执行的命令等,假如三次密码输入错误也会加入日志,执行没有权限也会加入日志,只要是通过sudo执行的命令都会记录

别名总结:

  1. sudo命令是给普通用户进行授权root才能执行的命令

  2. 生产场景下,使用监控软件 或使用 sudo配合rsyslog进行sudo权限进行审计

echo -e "Defaults\tlogfile=/var/log/sudo.log" >> /etc/sudoers 
cat /var/log/sudo.log        # 查看sudo命令日志

  3. 通过visudo编辑 /etc/sudoers文件并会有语法检查

  4. 通过主机别名、用户别名、命令别名、用户身份别名,按照部门需要进行更加精确的权限命令设计,别名都要大写,组前要加%,多个命令或用户用 , 隔开

  5. 普通用户通过 sudo + 命令 方式执行授权命令

linux_sudo命令的更多相关文章

  1. Cmder--Windows下命令行利器

    cmder cmder是一个增强型命令行工具,不仅可以使用windows下的所有命令,更爽的是可以使用linux的命令,shell命令. 安装包 安装包链接 下载后,直接解压即用. 修改命令提示符λ为 ...

  2. 【每日一linux命令4】常用参数:

     下面所列的是常见的参数(选项)义: --help,-h                              显示帮助信息 --version,-V                        ...

  3. .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门

    2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...

  4. MVVM模式解析和在WPF中的实现(三)命令绑定

    MVVM模式解析和在WPF中的实现(三) 命令绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...

  5. SQLServer执行命令出现“目录无效的提示”

    异常处理汇总-数据库系列  http://www.cnblogs.com/dunitian/p/4522990.html 一般都是清理垃圾清理过头了,把不该删的目录删了 网上说法: 问题描述: 1.s ...

  6. SQLServer文件收缩-图形化+命令

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 收缩前 图形化演示: 不仅仅可以收缩日记文件,数据库文件也是可以收缩的,只不过日记收缩比 ...

  7. 让 windows 下的命令行程序 cmd.exe 用起来更顺手

    在 Windows 下使用 Larave 框架做开发,从 Composer 到 artisan 总是避免不了和 cmd.exe 打交道,系统默认的命令行界面却是不怎么好看,且每行显示的字符数是做了限制 ...

  8. [版本控制之道] Git 常用的命令总结(欢迎收藏备用)

    坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...

  9. git 命令

    切换仓库地址: git remote set-url origin xxx.git切换分支:git checkout name撤销修改:git checkout -- file删除文件:git rm  ...

随机推荐

  1. [Spark内核] 第35课:打通 Spark 系统运行内幕机制循环流程

    本课主题 打通 Spark 系统运行内幕机制循环流程 引言 通过 DAGScheduelr 面向整个 Job,然后划分成不同的 Stage,Stage 是從后往前划分的,执行的时候是從前往后执行的,每 ...

  2. php 使用beanstalk 消息队列

    Beanstalkd 消息队列 一.基本信息Beanstalkd,一个高性能.轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web应用系统的页面访问延迟,支持过有 ...

  3. python之list

    1.python列表 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推 序列都可以进行的操作包括索引,切片,加,乘, ...

  4. duilib基本框架

    最近我一个同学在项目中使用到了duilib框架,但是之前并没有接触过,他与我讨论这方面的内容,看着官方给出的精美的例子,我对这个库有了很大的兴趣,我自己也是初学这个东东,我在网上花了不少时间来找相关的 ...

  5. oracle之 dblink 报ORA-03113 TNS-12543

    -- 客户端使用含 dblink sql报错( 症状:当数据库使用dblink访问其他数据库时,第一次执行某条dblink sql大多数情况下可以成功,偶尔执行一段时间后报错.如果该会话空闲二十分钟以 ...

  6. JSP中的“小饼干”Cookie,用来存储数组的方式(下方已String类型的数组为例:)

    1.Cookie常用方法中,存储数据的方式: Cookie cookie = new Cookie("key","Value"); response.addCo ...

  7. C++雾中风景6:拷贝构造函数与赋值函数

    在进行C++类编写的过程之中,通常会涉及到类的拷贝构造函数与类的赋值函数.初涉类编写的代码,对于两类函数的用法一直是挺让人困惑的内容.这篇文章我们会详细来梳理拷贝构造函数与赋值函数的区别. 1.调用了 ...

  8. Python3.5下安装&测试Scrapy

    1.引言 Scrapy框架结构清晰,基于twisted的异步架构可以充分利用计算机资源,是做爬虫必备基础,本文将对Scrapy的安装作介绍. 2.安装lxml 2.1  下载地址:https://ww ...

  9. Progressive Web Applications

    Progressive Web Applications take advantage of new technologies to bring the best of mobile sites an ...

  10. java自定义注解知识实例及SSH框架下,拦截器中无法获得java注解属性值的问题

    一.java自定义注解相关知识 注解这东西是java语言本身就带有的功能特点,于struts,hibernate,spring这三个框架无关.使用得当特别方便.基于注解的xml文件配置方式也受到人们的 ...