Linux加密和安全—sudo

sudo

普通用户在执行一些命令的时候会没有权限,例如2:关机、挂载光盘等

sudo可以授权给普通用户

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

例子:tail /vat/log/secure -f

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

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

例子:

>vim /etc/sudoers.d

>wang ALL=root /bin/* /etc/shadow 执行/bin下的所有操作

[root@localhost ~]# ll /usr/bin/sudo

配置文件规则有两类;

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

sudoers

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

示例:

  • root ALL=(ALL) ALL

格式说明:

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

别名 (用户可以写成多种形式)

  • Users和runas:
  • username 用户没
  • #uid 用户id
  • %group_name 组名
  • %#gid 组id
  • user_alias|runas_alias 用户别名

host:

  • ip或hostname
  • network(/netmask)
  • host_alias 主机别名

command:

  • command name
  • directory 目录
  • sudoedit 授权编辑修改sudo授权文件

例子:wang ALL=root sudoedit

> sudoedit /etc/sudoers

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

sudo示例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*

sudo案例:

rpm -qi sudo

rpm -ql sudo

  • /etc/sudoers sudo授权文件
  • /etc/sudoers sudo授权的子配置文件
  • /usr/bin/sudo 授权命令
  • /sudoers 编辑授权文件
  • /var/db/sudo sudo数据库 (检查授权前和授权和信息)

/etc/sudoer文件规则有4项

  • 用户 登入主机=(代表用户) 命令
  • root ALL=(ALL) ALL

解释:授权root在任何主机上登陆代表任何用户 执行任何操作

[root@localhost ~]# vim /etc/sudoers

例子:wang ALL=(root) /bin/mount /dev/sr0 /mnt

[root@localhost ~]# su - wang

[root@localhost ~]# sudo -u root mount /dev/sr0 /mnt

例子二:

[root@localhost ~]# vim /etc/sudoers

例子:wang ALL=(root) /bin/mount /dev/sr0 /mnt,/bin/umount

[root@localhost ~]# su - wang
[root@localhost ~]# sudo -u root umount /dev/sr0 /mnt
[root@localhost ~]# sudo -u root umount /data

例子三:

[root@localhost ~]# vim /etc/sudoers.d/

wang 192.168.32.7=(root) /bin/cat /etc/shadow
[root@localhost ~]# su ~ wang
[root@localhost ~]# sudo -u root cat /etc/shadow

************注意:要执行的命令必须要写命令的绝对路径***************

sodo对组授权

[root@localhost ~]#vim /etc/sudoers
%wheel ALL=(ALL) ALL (sudoers文件中的修改组项)
[root@localhost ~]# gpasswd -a wang wheel
[root@localhost ~]#id wang
[root@localhost ~]#vim /etc/sudoers
%wheel ALL=(ALL) ALL (sudoers文件中的修改组项)
%wheel ALL=(ALL) NOPASSWD: ALL

检查语法错误:

  • [root@localhost ~]# visudo -c
  • /etc/sudoers: parsed OK

sudo命令

  • ls -l /usr/bin/sudo
  • sudo –i –u wang 切换身份
  • sudo [-u user] COMMAND
  • -V 显示版本信息等配置信息

[root@localhost ~]#sudo -V

-u user 默认为root

-l,ll 列出用户在主机上可用的和被禁止的命令

su - wang

[root@localhost ~]#sudo -l

  • -v 再延长密码有效期限5分钟,更新时间戳
  • -k 清除时间戳( 1970-01-01),下次需要重新输密码
  • -K 与-k类似,还要删除时间戳文件

[root@localhost ~]#su -wang

[root@localhost ~]# sudo -K

[root@localhost ~]# exit

[root@localhost ~]# ll /var/db/sudo/wang

  • -b 在后台执行指令

[root@localhost ~]# su -wang

[root@localhost ~]# sudo -b sleep 10

  • -p 改变询问密码的提示符号

示例: -p ”password on %h for user %p:”

猜你喜欢

转载自blog.csdn.net/weixin_42741132/article/details/82951919