• 提升权限 -- sudo


    介绍


    su 命令的缺点:

      使用 su 命令时, 不指定用户名默认切换至 root 用户, 需要输入 root 密码, 但实际生产中 root 密码是不可以被广泛告知的; 若需要执行 root 用户才能执行的命令时, 需要通过 sudo 命令 或者 wheel 组的设置来实现..

    sudo :

    • 允许系统管理员分配给普通用户一些合理的 "权力" , 让授权用户可以执行只有超户或其他特定用户才能完成的操作, 减少 root 用户的登录次数及管理时间, 达到提高系统安全的效果;
    • 使用方法: sudo 授权命令 , 默认设置为首次执行时, 需输入当前用户的登录密码, 5 分钟内再次执行 sufo 命令时无需再次输入密码;
    • 能够限制指定用户在指定主机上运行某些命令;
    • 可提供日志, 详细的记录每个用户使用sudo有哪些操作,且能将日志传输到中心主机或者日志服务器;
    • 为系统管理员提供配置文件, 允许系统管理员集中的管理用户的使用权限和使用主机, /etc/sudoers;

    配置授权


     添加单个用户 sudo 授权

    // 使用 visudo 或者 vim /etc/sudoers 同样可以实现;
    // 格式: 用户    主机名=(命令程序列表) 命令,!命令(表示此命令不能使用)
    vim /etc/sudoers
        ... ...
        root    ALL=(ALL)    ALL
        ... ...
        # Allow users to run some commands
        tian    localhost=(root)        !/sbin/reboot,!/sbin/init,!/sbin/poweroff,!/sbin/shutdown
    
    ''' 
        第一个 ALL : 指网络中的主机, 可以指定 IP 地址;
        第二个 ALL : 目标用户, 可以不写, 默认root ; 也就是以谁的身份去执行命令;
        第三个 ALL : 命令,或者排除什么命令
    '''

      

    批量用户授权


    // ****************************** 方法一 : 使用组 ************************************
    // 多个用户可以使用组功能, 配置文件中 % 代表组, NOPASSWD 免输入密码;
    vim /etc/sudoers        // 开启 wheel 组, Centos 7 默认是开启的;
        ... ...
        %wheel        ALL=(ALL)       NOPASSWD: ALL        // NOPASSWD:ALL 免密钥存在一定的风险;
        // 可按下方配置进行设置, 禁掉不安全命令;
        %wheel        ALL=(ALL)       NOPASSWD: ALL,!/usr/bin/passwd,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/bin/su
        ... ...
        
    // 示例一; 可以指定组里面的特定用户, 也可以直接使用 ALL
        %wheel    tian=/sbin/*,/usr/sbin/*,!/sbin/reboot,!/sbin/init,!/sbin/poweroff,!/sbin/shutdown
    
    // ****************************** 方法二 : 别名 ***************************************
    // 设置 主机别名 , 用户别名 , 命令别名; 格式: 用户别名  主机别名=命令别名(所有别名均大写)
    vim /etc/sudoers
        ... ...
        ## Host Aliases                    // 主机别名
        ## Groups of machines. You may prefer to use hostnames (perhaps using 
        ## wildcards for entire domains) or IP addresses instead.
        # Host_Alias     FILESERVERS = fs1, fs2
        # Host_Alias     MAILSERVERS = smtp, smtp2
        
        ## User Aliases                    // 用户别名
        ## These aren't often necessary, as you can use regular groups
        ## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname 
        ## rather than USERALIAS
        # User_Alias ADMINS = jsmith, mikem
        User_Alias ADMIN = tian,zxjr
        
        ## Command Aliases                // 命令别名
        ## These are groups of related commands...
        Cmnd_Alias ADMINCOM = !/usr/bin/passwd,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/bin/su
        
        ADMIN ALL=(ALL)        NOPASSWD: ALL,ADMINCOM
        

    开启 sudo 操作记录功能


    // 编辑sudo配置文件, 添加 Defaults logfile;
    vim /etc/sudoers             或者 visudo
        ... ...
        Defaults logfile=/var/log/sudo
        ... ...
        
    // 保存退出,
    useradd                 // 使用 tian 用户执行 /usr/sbin 下的root的命令;回显没有权限;
        -bash: /usr/sbin/useradd: Permission denied
    sudo useradd zxjr     // 使用 sudo 执行;输入 用户 tian 的密码; 
        [sudo] password for tian: 
        useradd: user 'zxjr' already exists
    su -                 // 切换到 root 用户;
    Password: 
    tail -f /var/log/sudo         // 查看日志记录, 详细记录时间, 用户, tty端, 所在路径, 使用用户, 执行命令;
        Apr  8 22:02:09 : tian : TTY=pts/0 ; PWD=/home/tian ; USER=root ;
            COMMAND=/usr/sbin/useradd zxjr
  • 相关阅读:
    (二)使用properties配置文件,配置连接数据库的基本信息
    (一)使用properties配置文件,配置连接数据库的基本信息
    使用jdbc连接mysql数据库
    servlet动态资源发布
    JavaWeb静态资源发布
    [leedcode 138] Copy List with Random Pointer
    [leedcode 137] Single Number II
    [leedcode 136] Single Number
    [leedcode 135] Candy
    [leedcode 134] Gas Station
  • 原文地址:https://www.cnblogs.com/haorong/p/10647032.html
Copyright © 2020-2023  润新知