美文网首页
SUDO更改身份

SUDO更改身份

作者: Simon_Ye | 来源:发表于2020-03-12 16:44 被阅读0次

    su 切换身份

    su -l username -c 'command'

    sudo授权

    • 来自sudo包
    • man 5 sudoers
    • sudo 能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员
    • sudo 可以提供日志,记录每个用户使用 sudo 操作
    • sudo 为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机
    • sudo 使用时间戳文件来完成类似“检票”的系统,默认存活期为5分钟的“入场券”
    • 通过 visudo 命令编辑配置文件,具有语法检查功能
      visudo -c:检查语法

    配置文件:

    /etc/sudoers/etc/sudoers.d/

    时间戳文件:

    • CentOS 6:/var/db/sudo
    • CentOS 7:/run/sudo/ts

    日志文件:

    /var/log/secure

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

    ?:任意单一字符
    *:匹配任意长度字符
    [abc]:匹配其中一个字符
    [!abc]:除了这三个字符的其它字符
    \x:转义
    [[alpha]]:字母
    示例:/bin/ls [[alpha]]*

    配置文件规则有两类:

    1. 别名定义:不是必须的
    2. 授权规则:必须的

    sudoers:

    • 授权规则格式:
      用户 登入主机=(代表用户) 命令
    • 示例:
      root ALL=(ALL) ALL
    • 格式说明:
      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
       Cmnd_Alias
    sudo别名和示例
    • 别名有四种类型: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/parte,/sbin/fdisk
      SYSADER SERS= SYDCMD,DSKCMD
      DISKDER ALL=(OP) DSKCMD
      
    • 示例5:
      User_Alias ADMINUSER = adminuser1,adminuser2
      Cmnd_Alias ADMINCMD = /usr/sbin/useradd,/user/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
      
    • 示例7:
      user1 192.168.175.136,192.168.175.138=(root) /usr/sbin/,!/usr/sbin/useradd
      
    • 示例8:
      user1 ALL=(ALL) /bin/cat /var/log/messages*
      

    sudo命令

    • ls -l /usr/bin/sudo
    • 切换身份:
      ~]# sudo -i -u user1
    • 格式:
      sudo [-u user] COMMAND
      -V:显示版本信息等配置信息
      -u user:默认为root
      -l-ll:列出用户在主机上可用的和被禁止的命令
      -v:再延长密码有效期限5分钟,更新时间戳
      -k:清除时间戳(1970-01-01),下次需要重新输入密码
      -K-k类似:还要删除时间戳文件
      -b:在后台执行指令
      -p:改变询问密码的提示符号
       示例:-p "password on %h for user %p:"

    相关文章

      网友评论

          本文标题:SUDO更改身份

          本文链接:https://www.haomeiwen.com/subject/eqtpjhtx.html