-
: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
-
默认用户在第一次认证通过的开始将用户的密码记录下来,并且默认时间为5分钟;sudo
-
:sudo
-
:命令用于让认证信息失效,用户下次执行仍然需要密码;-k
-
:用于列出当前用户可以使用的sudo类命令;-l
-
- 使用
执行的命令过程都是在sudo
都有进行定义;,如果邮件服务是正常的,当存在非法用户执行/var/log/secure
命令时,超级用户是可以是收到邮件通知的;sudo