zoukankan      html  css  js  c++  java
  • Linux sudo用户提权与日志审计

    一、格式说明及常用配置选项

    格式: 用户或组 主机=授权可以使用哪个用户的权限 可以执行的命令

    User_Alias 用户定义别名(别名可以是用户,用户组(用户组前面要加%))
    例:User_Alias OLD_ADMINS=wt

    Runas_Alias 定义runas别名(sudo允许切换到的用户身份)
    例:Runas_Alias OP=root

    Cmnd_Alias 定义命令别名
    例:Cmnd_Alias USERCMD=/usr/sbin/useradd

    注意事项:如果别名后面有多个用户或命令,可以使用","隔开;如果使用的是组,在组前面需要加"%";如果配置语句太长,可以使用""换行;需要特别注意的是,所有定义的别名都需要大写

    二、配置一个范例

    1、创建一个新用户

    1 [root@WT ~]# useradd wt
    2 [root@WT ~]# echo "wt"|passwd --stdin wt
    3 Changing password for user wt.
    4 passwd: all authentication tokens updated successfully.

    2、执行visudo命令在最下面添加如下配置,实现sudo提权

    #My sudo configuration
    User_Alias OLD_ADMINS=wt
    Runas_Alias OP=root
    Cmnd_Alias USERCMD=/usr/sbin/useradd
    
    OLD_ADMINS ALL=(OP) USERCMD

    3、切换到wt用户,并执行查看wt所拥有的权限(可以看到wt这个普通用户已经拥有创建用户命令的useradd命令了)

     1 [root@WT ~]# su - wt
     2 Last login: Thu Sep 27 21:54:09 CST 2018 on pts/0
     3 [wt@WT ~]$ sudo -l
     4 
     5 We trust you have received the usual lecture from the local System
     6 Administrator. It usually boils down to these three things:
     7 
     8     #1) Respect the privacy of others.
     9     #2) Think before you type.
    10     #3) With great power comes great responsibility.
    11 
    12 [sudo] password for wt: 
    13 Matching Defaults entries for wt on WT:
    14     !visiblepw, always_set_home, match_group_by_gid, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR
    15     LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE
    16     LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    17     env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin:/bin:/usr/sbin:/usr/bin
    18 
    19 User wt may run the following commands on WT:
    20     (root) /usr/sbin/useradd

    4、试在普通用户wt用户创建一个test用户

    1 [wt@WT ~]$ sudo useradd test
    2 [wt@WT ~]$ id test
    3 uid=1001(test) gid=1001(test) groups=1001(test)

    三、配置日志审计

    1、配置日志审计

    [root@WT ~]# rpm -aq sudo rsyslog
    rsyslog-8.24.0-16.el7.x86_64
    sudo-1.8.19p2-13.el7.x86_64
    [root@WT ~]# echo "Defaults     logfile=/var/log/sudo.log">>/etc/sudoers
    [root@WT ~]# visudo -c
    /etc/sudoers: parsed OK

    2、切换到普通用户wt,创建一个普通用户test2

    [root@WT ~]# su - wt
    Last login: Fri Sep 28 21:48:38 CST 2018 on pts/0
    [wt@WT ~]$ sudo useradd test2
    [sudo] password for wt: 

    3、切换到root用户,查看/var/log/sudo.log的内容

    1 [root@WT ~]# cat /var/log/sudo.log 
    2 Sep 28 22:38:30 : wt : TTY=pts/0 ; PWD=/home/wt ; USER=root ;
    3     COMMAND=/sbin/useradd test2
  • 相关阅读:
    Java集合:HashMap
    Java线程池原理
    Linux常用命令
    分布式系统基本概念
    接口中的default方法(默认方法)
    正则表达式匹配+过滤
    Java Optional类
    mongo过期索引
    Java8函数式接口简介
    JS版微信6.0分享接口用法分析
  • 原文地址:https://www.cnblogs.com/wutao666/p/9721176.html
Copyright © 2011-2022 走看看