sudo是系统管理员让普通用户执行一些或者全部的root命令的一个工具

配置文件:/etc/sudoers

编辑配置文件:visudo

一个sudo条目:

某个用户能够以另外哪一个用户的身份通过哪些主机执行什么命令
who  which_hosts=(runas) TAG: command

  此处命令必须是完整路径

示例:hadoop ALL=(root) /usr/sbin/useradd

让hadoop执行命令时不用输入密码

        hadoop ALL=(root) NOPASSWD:/usr/sbin/useradd

hadoop执行第一个命令不输入密码,执行第二个命令输入密码

     hadoop ALL=(root) NOPASSWD:/usr/sbin/useradd,PASSWD:/usr/sbin/userdel

用户别名:

User_Alias USERADMIN =
 用户的用户名
 组名,使用%引导
 还可以包含其它已经用户别名
 
Host_Alias
 主机名
 IP
 网络地址
 其它主机别名

Runas_Alias:
 用户名
 %组名
 其它的Runas别名
 
Cmnd_Alias:
 命令路径
 目录(此目录内的所有命令
 其它事先定义过的命令别名

who: User_Alias
which_hosts: Host_Alias
runas: Runas_Alias
command: Cmnd_Alias

示例:

User_Alias USERADMIN=hadoop,%hadoop,%useradmin
Cmnd_Alias USERADMINCMND=/usr/sbin/useradd,/usr/sbin/usermod,/usr/sbin/userdel

别名必须全部而且只能使用大写英文字母的组合 必须先定义才能使用

USERADMIN ALL=(root) NOPASSWD:USERADMINCNMD

sudo命令
 -l:列出当前用户可以使用的所有sudo类命令
 -k: 让认证信息失效,下次操作必须输入密码

sudo用法示例:

 sudo /usr/sbin/useradd tom

 sudo /usr/sbin/usermod -s /bin/csh tom
 默认第一次输入密码后 五分钟内不用输入密码