袁党生博客

  • 主页
  • linux基础
  • SHELL
  • WEB
  • 负载
  • 企业级应用
  • 数据库
  • KVM
  • Docker
  • K8S
  • 监控
  • 存储
  • 博客搭建问题
  1. 首页
  2. linux基础
  3. 正文

sudo

2020年8月19日 5180点热度 0人点赞 0条评论

更改身份

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

sudo

  • 配置文件:/etc/sudoers, /etc/sudoers.d/
  • 时间戳文件:/var/db/sudo
  • 日志文件:/var/log/secure
  • 配置文件支持使用通配符glob:
      ?:任意单一字符
      * :匹配任意长度字符
      [wxc]:匹配其中一个字符
      [!wxc]:除了这三个字符的其它字符
      \x : 转义
      [[alpha]] :字母 示例: /bin/ls [[alpha]]*
  • 配置文件规则有两类;
      1、别名定义:不是必须的
      2、授权规则:必须的

sudoers

  • 授权规则格式:
      用户 登入主机=(代表用户) 命令
  • 示例:
      root ALL=(ALL) ALL
  • 格式说明:
      user: 运行命令者的身份
      host: 通过哪些主机
      (runas):以哪个用户的身份
      command: 运行哪些命令

示例:

写在子配置文件/etc/sudoers.d目录下,把授权命令写入该目录下自定义的文件中 
cat /etc/sudoers.d/f1
wang ALL=(root) /bin/mount /dev/sr0 /mnt
注意“=”号后的(root)可以省略不写,默认代表root
示例:
cat /etc/sudoers/wang
wang 192.168.32.128=   /bin/cat /etc/shadow
cat /etc/sudoers/mage
mage 192.156.32.128=(wang)  ALL
在mage用户界面
sudo -u wang sudo /bin/cat  /etc/shadow

别名

  • 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/parted,/sbin/fdisk  
SYSADER SERS= SYDCMD,DSKCMD  
DISKADER ALL=(OP) DSKCMD  
示例4  
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  
示例5  
Defaults:wang runas_default=tom  
wang ALL=(tom,jerry) ALL  
示例6  
wang 192.168.1.6,192.168.1.8=(root) /usr/sbin/,!/usr/sbin/useradd  
示例7  
wang ALL=(ALL) /bin/cat /var/log/messages*  
这个写法存在漏洞,可以在/var/log/messages文件后跟其他文件
如:sudo  cat /var/log/messages /etc/shadow
解决方法:wang ALL=(ALL) /bin/cat /var/log/messages*,!/bin/cat /var/log/messages* *

sudo命令

  • ls -l /usr/bin/sudo
  • sudo –i –u wang 切换身份
  • 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
最后更新:2023年6月15日

袁党生

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2023 linux学习. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备18039507号-1