天天看点

Linux 杂记 特殊权限管理之sudo

  • sudo

    :
    • 特殊权限管理,用于给不同的用户管理不同的功能,使彼此只见不相互干扰;
    • Linux

      通过

      sudo

      不进行用户切换,但是在使用

      sudo COMMAND

      的那一刻拥有了执行这个命令的权限;
    • sudo

      :用于定义某个用户能够以另某用户的身份通过某主机执行某命令,其中配置文件在

      cat /etc/sudoers

      ,使用

      visudo

      来编辑,而且可以用来检查其语法的正确性,

      visudo -f /etc/sudoers

      ,
  • /etc/sudoers

    :配置文件的语法格式:
  • 每一个行用于定一个一个sudo条目:
who         which_hosts=runas       TAG:conmand
root    ALL=(ALL)       ALL //表示管理员可以使用任何身份执行任何命令;
           
  • sudo

    支持别名机制,类似定义的管理组
  • 1.

    who:User_Alias

User_Alias      FULLTIMERS = millert, mikef, dowdy
必须使用大写英文字母的组合,用户别名可以包含当前主机上面的用户组,
User_Alias      FULLTIMERS = %millert, %mikef, %dowdy
这里表示的就是组名;
           
  • 2.

    which_hosts:Host_Alias

主机别名可以使用主机名,IP,组名,网络地址,其他主机地址;
Host_Alias      CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0
           
  • 3.

    runas:Runas_Alias

    :支持用户名,

    %组名

    ,其他的

    Runas

    别名;
  • 4.

    command:Cmnd_Alias

    :命令最好是用绝对路径,目录:此目录内的所有路径,其他实现定义过的命令别名;
  • 对于上述的四种别名,别名必须是大写的英文字母;
  • 5.

    TAG

    :支持标签,

    NOPASSWD

    :表示执行这个命令是不需要密码的;
  • 接下来实现hadoop通过sudo执行useradd命令,并且能够添加用户
  • 1.

    visudo -f /etc/sudoers

添加:
hadoop ALL=(root) /usr/sbin/useradd,/usr/sbin/usermod
$ sudo useradd tom
sudo] password for hadoop:  //需要输入hadoop的密码
$ sudo /usr/sbin/userdel tom
Sorry, user hadoop is not allowed to execute '/usr/sbin/userdel tom' as root on localhost.localdomain.
$ sudo usermod -s /bin/csh tom
           
  • 接下来添加执行不使用密码的方式来执行上面两个命令:
    Linux 杂记 特殊权限管理之sudo
    Linux 杂记 特殊权限管理之sudo
  • 定义用户管理类别名的方式
User_Alias USERNAME=haoop,%hadoop,%useradmin
Cmnd_Alias USERADMINCMMD=/usr/sbin/useradd,/usr/sbin/usermod,/usr/sbin/userdel,/usr/bin/passwd [A-Za-z]*,! /usr/bin/passwd root
USERNAME ALL=(root) NOPASSWD:USERADMINCMMD
           
  • sudo

    默认用户在第一次认证通过的开始将用户的密码记录下来,并且默认时间为5分钟;
  • sudo

    :
    • -k

      :命令用于让认证信息失效,用户下次执行仍然需要密码;
    • -l

      :用于列出当前用户可以使用的sudo类命令;
  • 使用

    sudo

    执行的命令过程都是在

    /var/log/secure

    都有进行定义;,如果邮件服务是正常的,当存在非法用户执行

    sudo

    命令时,超级用户是可以是收到邮件通知的;

继续阅读