Linux 权限管理_sudo授权 学习总结(三)

Linux sudo授权 学习总结

一、前言:

        前面已经总结了基本权限、umask默认权限、ACL权限,想要了解的朋友可以直接拉到最底,通过传送门浏览查看。

        本篇将要介绍sudo授权,sudo授权是在实际生产环境中常用的权限管理方式 ,是管理者对运维工程师授权的主要方式之一,所以要重点学习掌握,重点掌握如何授权,普通用户如何查询、使用。       

二、sudo授权

2.1 sudo授权

  • 赋予普通用户部分超级管理员权限

2.2 授权原则

  • 授权的权限越详细,普通用户得到的权限越小
  • 授权的权限越简单,普通用户得到的权限越大

2.3 授权方式

  •  通过 visudo命令 赋予普通用户权限,执行效果类似于 vi 
    [root@localhost ~]# visudo
    ...
     88 ## The COMMANDS section may have other options added to it.
     89 ##
     90 ## Allow root to run any commands anywhere
     91 root    ALL=(ALL)       ALL
     92 
     93 ## Allows members of the 'sys' group to run networking, software,
     92 
     93 ## Allows members of the 'sys' group to run networking, software,
     94 ## service management apps and more.
     95 # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
     96 
     97 ## Allows people in group wheel to run all commands
     98 # %wheel        ALL=(ALL)       ALL
     99 
    100 ## Same thing without a password
    101 # %wheel        ALL=(ALL)       NOPASSWD: ALL
    102 
    103 ## Allows members of the users group to mount and unmount the
    104 ## cdrom as root
    105 # %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
    106 
    107 ## Allows members of the users group to shutdown this system
    108 # %users  localhost=/sbin/shutdown -h now
    109 
    110 ## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
    111 #includedir /etc/sudoers.d

2.3.1 文件说明

root          ALL=(ALL)       ALL    赋予用户管理员权限
%wheel        ALL=(ALL)       ALL    赋予组管理员权限
  • 文件解释
    • 第一列:代表用户/组
      • 如果是用户,直接书写用户名即可,比如:root,lamp等等
      • 如果是组,请在组名前面加 %,比如:wheel组,可以表示为 %wheel
    • 第二列:代表被管理的IP=(用户身份)
      • 被管理的IP:一般指远程的服务器IP
      • 用户身份:一般直接写ALL,或者不写,都是管理员权限的意思。
    • 第三列:代表授权的命令
      • 一定要写绝对路径
      • 命令越详细越好,安全性高

2.3.2 授权格式

用户名          ALL=绝对路径 [命令参数]  
组             ALL=绝对路径 [命令参数]         

2.3.3 授权位置

  • 授权用户
     90 ## Allow root to run any commands anywhere
     91 root    ALL=(ALL)       ALL
    
     在 root 下面追加赋予普通用户的权限
  • 授权组 
     97 ## Allows people in group wheel to run all commands
     98 # %wheel        ALL=(ALL)       ALL
     
     在 %wheel 所在行下面,追加赋予组的权限

2.3.4 调用方式

  • 调用方式:
    • sudo 绝对路径 参数
    • sudo 命令名称 参数 

2.4 举例:给用户 test 赋予重启服务器的权限

  • 创建用户 test ,并给用户赋予 shutdown -r now 
#1、创建用户并设置密码
[root@localhost ~]# useradd test
[root@localhost ~]# passwd test
更改用户 test 的密码 。
新的 密码:
无效的密码: WAY 过短
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

#2、查找 shutdown 命令的绝对路径
[root@localhost ~]# whereis shutdown
shutdown: /sbin/shutdown /usr/share/man/man2/shutdown.2.gz         /usr/share/man/man3p/shutdown.3p.gz /usr/share/man/man8/shutdown.8.gz

#3、用 visudo 命令赋予 用户test 重启权限
[root@localhost ~]# visudo
...
90 ## Allow root to run any commands anywhere
91 root    ALL=(ALL)       ALL
92 test    ALL=/sbin/shutdown -r now
...
  •  切换到用户test
[root@localhost ~]# su - test
[test@localhost ~]$
  • test用户查看自己的管理员权限 
[test@localhost ~]$ sudo -l

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
#首次 sudo -l 会要用户密码,输入即可
[sudo] password for test: 
匹配此主机上 test 的默认条目:
    !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL
    PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET
    XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

用户 test 可以在该主机上运行以下命令:
    (root) /sbin/shutdown -r now

        说明: (root) /sbin/shutdown -r now 这条命令存在,代表我们赋予成功。

  •  test 用户执行 root 用户命令格式
[test@localhost ~]$ sudo /sbin/shutdown -r now

#或者 

[test@localhost ~]$ sudo shutdown -r now

       以上命令执行之后,服务器/虚拟机进行重启,从而真正达到了普通用户 test 拥有管理员权限的目的。

 三、小结

  • 知识点总结
    • sudo作用:让普通用户具有部分超级用户(管理员)权限
    • 授权原则:越详细越好
    • 授权命令:visudo 
      • 格式: 用户名/组名        被管理IP=(用户身份)        绝对路径 [具体参数]
    • 普通用户查看被赋予的管理员权限
      • sudo -l,初次查看会需要输入用户登录密码
    • 普通用户调用管理员命令格式:
      • sudo 绝对路径 具体参数
      • sudo 命令名称 具体参数

四、推荐阅读

  • 想了解Linux其他权限管理的内容,请打开以下传送门:
    • Linux 权限管理_ACL权限 学习总结(二)
    • Linux 权限管理_基本权限和umask默认权限 学习总结(一)    

        如果以上内容为您产生些许帮助,请点赞+收藏+关注 ,支持一下作者,感激不尽!

你可能感兴趣的:(CentOS6,Linux基础知识,linux,学习,运维)