sudo——让普通用户更灵活

sudo命令

1、sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用sudo ,会提示联系管理员

2、sudo可以提供日志,记录每个用户使用sudo 操作

3、sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机

4、sudo 使用时间戳文件来完成类似“检票”的 系统,默认存活期为5 分钟的 “入场券”

5、通过visudo命令编辑配置文件,具有语法检查功能

配置文件:/etc/sudoers, /etc/sudoers.d/

时间戳文件:/var/db/sudo

日志文件:/var/log/secure

配置文件支持使用通配符glob:

         ?: 任意单一字符

         *:匹配任意长度字符

         [wxc]:匹配其中一个字符

         [!wxc]:除了这三个字符的其它字符

         \x:转义

         [[alpha]]:字母

                 示例:/bin/ls [[alpha]]*

配置文件规则有两类 ;

         1、别名定义:不是必须的

         2、授权规则:必须的

sudo –i –u wang  切换身份

sudo [-u user] COMMAND

         -V:显示版本信息等配置信息

         -u user:默认为root

         -l,ll:列出用户在主机上可用的和被禁止的命令

         -v:再延长密码有效期限5分钟, 更新时间戳

         -k:清除时间戳,下次需要重新输密码

         -K:与-k类似,还要删除时间戳文件

         -b:在后台执行指令

         -p:改变询问密码的提示符号

                 如 -p ”password on %h for user %p"

授权规则格式:

    用户 登入主机=(代表用户) 命令

示例:

         root ALL=(ALL) ALL

         /etc/sudoers中 关于root权限的行,是一个后门,如果root用户不是管理员了,但可以使用sudo命令来获取所有用户的权限

        

         A用户加入到wheel组中,B用户运行以A身份运行命令<sudo>

         则B用户要运行拥有wheel组的权限,需要2次sudo

                 sudo -u A sudo cat /etc/shadow

格式说明:

         user:运行命令者的身份

         host:通过哪些主机

         (runas):以哪个用户的身份

         command:运行那些命令

Users和runas:

         username

         #uid

         %group_name

         %#gid

         user_alias|runas_alias

host:

         ip 或hostname

         network(/netmask)

         host_alias

command:

         command name

         directory

         sudoedit

                 授权用户可以直接编辑/etc/sudoers文件

                 用法:sudo /etc/dudoers

         Cmnd_Alias

别名有四种类型:User_Alias,Runas_Alias,Host_Alias,Cmnd_Alias

别名格式:[A-Z]([A-Z][0-9]_)*

别名定义:

        Alias_Type NAME1 = item1, item2, item3 : NAME2 = item4, item5

示例1:

         Student ALL=(ALL) ALL

         %wheel ALL=(ALL) ALL

示例2:

         student ALL=(root) /sbin/pidof,/sbin/ifconfig

         %wheel ALL=(ALL) NOPASSWD: ALL

示例3:

         User_Alias NETADMIN= netuser1,netuser2

         Cmnd_Alias NETCMD = /usr/sbin/ip

         NETADMIN ALL=(root) NETCMD

示例4:

         User_Alias SYSADER=wang,mage,%admins

         User_Alias DISKADER=tom

         Host_Alias SERS=www.magedu.com,172.16.0.0/24

         Runas_Alias OP=root

         Cmnd_Alias SYDCMD=/bin/chown,/bin/chmod

         Cmnd_Alias DSKCMD=/sbin/parted,/sbin/fdisk

         SYSADER SERS=  SYDCMD,DSKCMD

         DISKADER ALL=(OP) DSKCMD

示例5:

         User_Alias ADMINUSER = adminuser1,adminuser2

         Cmnd_Alias ADMINCMD = /usr/sbin/useradd,

         /usr/sbin/usermod, /usr/bin/passwd [a-zA-Z]*,

         !/usr/bin/passwd root

         ADMINUSER ALL=(root) NOPASSWD:ADMINCMD, ,

         PASSWD:/usr/sbin/userdel

示例6:

         Defaults:wang runas_default=tom

         wang ALL=(tom,jerry) ALL

         使用sudo命令时,不写-u USER,默认是wang

示例7:

    wang 192.168.175.136,192.168.175.138=(root) /usr/sbin/,!/usr/sbin/useradd

示例8:

    wang ALL=(ALL) /bin/cat /var/log/message*

原创文章,作者:megedugao,如若转载,请注明出处:http://www.178linux.com/49075

(1)
上一篇 2016-09-25 14:43
下一篇 2016-09-25 15:00

相关推荐

  • N25-第七周博客作业

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; 查看当前分区情况 [root@han ~]# fdisk -l Disk /dev/sda: 42…

    Linux干货 2017-02-23
  • Linux 基础命令

    一,GNU/LINUX操作系统组成        1.1硬件  计算机硬件资源,CPU,主板,内存,存储器等 1.2 内核层 包含了硬件控制,设备驱动程序,虚拟文件系统,网络管理,内存管理,进程管理,程序调度等 ,属于内核空间 1.3 系统调用 所有的操作系统在其内核里都有一些内建的函数,这些函数可以用来完成…

    2016-10-29
  • 第七周

    第七周 1 创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动…

    Linux干货 2017-02-20
  • ansible-playbook组件解析及操作全解

    一、ansible-playbook介绍:  playbook是由一个或多个”play”组成的列表。play的主要功能在于将事先归为一组的主机装扮成事先通过ansible中的task定义好的角色。从根本上来将,所谓的task无法是调用ansible的一个module。将多个paly组织在一个playbook中,即可以让他们联通起来按事…

    2015-08-24
  • HTTP协议

    HTTP协议   HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP协议工作于客户端-服务端架构之上。浏览器作为HT…

    Linux干货 2017-02-15
  • Linux基于OpenSSL实现私有CA构建

    前言 随着互联网的迅猛发展,网络通信已经成为传递信息的主要途径。而通信时的数据传输大部分却是明文传输的,在网络这个不安全的环境下,如果没有一套数据加密机制,就会导致敏感信息和重要数据泄露,引起不可估量的损失。而OpenSSL正好弥补了这一缺憾,那什么是OpenSSL呢?OpenSSL是一套强大的具有加密功能的组件,它包含libcrypto(公共加密库)、li…

    Linux干货 2015-04-13