[关闭]
@mrz1 2018-01-14T04:00:45.000000Z 字数 3088 阅读 1097

授权身份-sudo

网络安全


更改身份sudo

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/
- 时间戳文件:/var/db/sudo 一定时间不会再填写密码
- 日志文件:/var/log/secure 能看到被授权人执行什么操作
- 配置文件支持使用通配符glob:

  1. ?:任意单一字符
  2. * :匹配任意长度字符
  3. [wxc]:匹配其中一个字符
  4. [!wxc]:除了这三个字符的其它字符
  5. \x : 转义
  6. [[alpha]] :字母示例:/bin/ls [[alpha]]*
配置文件规则有两类:
别名定义:不是必须的
授权规则:必须的
  1. sudo命令:
  2. ls -l /usr/bin/sudo
  3. sudo i u wang切换身份
  4. sudo[-u user] COMMAND
  5. -V 显示版本信息等配置信息
  6. -u user 默认为root-l,ll列出用户在主机上可用的和被禁止的命令
  7. -v 再延长密码有效期限5分钟,更新时间戳
  8. -k 清除时间戳(1970-01-01),下次需要重新输密码
  9. -K 与-k类似,还要删除时间戳文件
  10. -b在后台执行指令
  11. -p 改变询问密码的提示符号示例:-ppassword on %h for user %p:"

实例:

  1. 配置文件:/etc/sudoers(只读文件), /etc/sudoers.d/(建议修改这个文件)
  2. visudo==打开/etc/sudoers //用visudo打开文件有语法检查功能缺点没颜色配置环境变量
  3. [root@centos7 ~]#vim /etc/profile.d/env.sh
  4. export EEDITOR=vim //添加这个
  5. [root@centos7 ~]#vipw //有颜色的
  6. root:x:0:0:root:/root:/bin/bash
  7. bin:x:1:1:bin:/bin:/sbin/nologin
  8. daemon:x:2:2:daemon:/sbin:/sbin/nologin
  9. 重要 部分 wang用户只能挂载到/mnt/cdrom目录下
  10. [root@centos6 ~]#visudo
  11. ## Allow root to run any commands anywhere
  12. root ALL=(ALL) ALL
  13. wang ALL=(root /usr/bin/mount /dev/sr0 /mnt/cdrom
  14. 注意这里写什么用户就能执行什么一点不能差
  15. 这时wang用户执行命令前必须加sudo
  16. [wang@centos6 ~]#sudo mount /dev/sr0 /mnt/cdrom
  17. 但是一般不建议在这个文件添加;(建议在/etc/sudoers.d/下)
  18. [root@centos6 ~]#vim wang
  19. wang ALL=(root /usr/bin/mount /dev/sr0 /mnt/cdrom
  20. 一个用户一个文件不会乱套
  21. visudo c 检查语法
  22. visudo -f /etc/sudoers.d/wang //打开weng用户
  23. [root@centos6 ~]#visudo -f /etc/sudoers.d/wang
  24. wang ALL=(zhang) ALL
  25. zhang ALL=(root) /bin/cat /etc/shadow
  26. [wang@centos6 ~]#sudo -u zhang sudo cat /etc/shadow //wang用户代替zhang用户执行权限 这样写有点绕
  27. %wheel ALL=(ALL) NOPASSWD: ALL //这个是组,如果这个没改放开的的话 只要是这个组成员就什么都能执行相当与root

sudoers

授权规则格式:用户登入主机=(代表用户) 命令
示例:root ALL=(ALL) ALL

格式说明:
user: 运行命令者的身份
host: 通过哪些主机
(runas):以哪个用户的身
command: 运行哪些命令

别名

  1. Usersrunas:
  2. username
  3. #uid
  4. %group_name
  5. %#gid
  6. user_alias|runas_alias
  7. host:
  8. iphostname
  9. network(/netmask)
  10. host_alias
  11. command:
  12. command name
  13. directory
  14. sudoedit(特殊权限如果用户有sudoedit权限 那他就可以编写所有用户sudo权限)
  15. Cmnd_Alias

sudo别名和示例

  1. 别名有四种类型:User_Alias, Runas_Alias, Host_Alias Cmnd_Alias
  2. 别名格式:[A-Z]([A-Z][0-9]_)*
  3. 别名定义:Alias_TypeNAME1 = item1, item2, item3 : NAME2 = item4, item5
  1. 示例1
  2. Student ALL=(ALL) ALL
  3. %wheel ALL=(ALL) ALL
  4. 示例2
  5. student ALL=(root) /sbin/pidof,/sbin/ifconfig
  6. %wheel ALL=(ALL) NOPASSWD: ALL
  7. 示例3
  8. User_Alias NETADMIN= netuser1,netuser2
  9. Cmnd_Alias NETCMD=/usr/sbin/ip
  10. NETADMIN ALL=(rootNETCMD
  11. 示例4
  12. User_Alias SYSADER=wang,mage,%admins
  13. User_Alias DISKADER=tom
  14. Host_Alias SERS=www.magedu.com,172.16.0.0/24
  15. Runas_Alias OP=root
  16. Cmnd_Alias SYDCMD=/bin/chown,/bin/chmod
  17. Cmnd_Alias DSKCMD=/sbin/parted,/sbin/fdisk
  18. SYSADER SERS= SYDCMD,DSKCMD
  19. DISKADER ALL=(OP) DSKCMD
  20. 示例5
  21. User_Alias ADMINUSER = adminuser1,adminuser2
  22. Cmnd_Alias ADMINCMD = /usr/sbin/useradd, /usr/sbin/usermod, /usr/bin/passwd[a-zA-Z]*, !/usr/bin/passwdroot
  23. ADMINUSER ALL=(root) NOPASSWD:ADMINCMDPASSWD:/usr/sbin/userdel
  24. 示例5
  25. Defaults:wang runas_default=tom
  26. wang ALL=(tom,jerry) ALL
  27. 示例6 授权以下主机登陆
  28. wang 192.168.175.136,192.168.175.138=(root) /usr/sbin/,!/usr/sbin/useradd
  29. 示例7 如果这样写的话也可以查看/etc/password文件 man sudoers帮助有
  30. wang ALL=(ALL) /bin/cat /var/log/messages*

示例7 问题解决

示例7 如果这样写的话也可以查看/etc/password文件 man sudoers帮助有
wang ALL=(ALL) /bin/cat /var/log/messages*, /bin/cat /var/log/messages*

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注