Linux 杂记 特殊权限管理之sudo

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36294875/article/details/79952974
  • 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
  • 接下来添加执行不使用密码的方式来执行上面两个命令:
    这里写图片描述
    这里写图片描述

  • 定义用户管理类别名的方式

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命令时,超级用户是可以是收到邮件通知的;
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页