管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码

sudo的配置文件 /etc/sudoers

编辑配置文件 visodo,退出时检查语法(vi/vim也可编辑,不检查语法)


定义规则:

who which_hosts=(runas) command(使用全路径)

某用户 在哪个主机上 以什么身份运行 某命令

例如配置hodoop用户可以有 useradd,userdel的权限

visudo

插入

hodoop ALL=(root) /usr/sbin/useradd,/usr/sbin/userdel

Linux-sudo_第1张图片

以hodoop用户 执行useradd,完成添加用户,第一次执行sudo,需要输入hodoop的密码,下一次使用sudo不需要输密码(期限5分钟)


sudo -k 将会强迫使用者在下一次执行sudo时问密码(不管有没有超过5分钟)

sudo -l 查看sudo使用者的权限


执行sudo命令的日志,保存在 /etc/var/secure日志里

Linux-sudo_第2张图片


如果命令列表前使用 NOPASSWD或PASSWD

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

以hodoop用户添加用户,不需要输入hodoop的密码,删除用户时需要输入hodoop的密码

Linux-sudo_第3张图片


定义规则支持别名: 别名方便定义多个用户,多种命令等(所有的别名都是大写的)

who: User_Alias

例如:定义用户列表

用户,用户组(组名)用%引用

User_Alias USERADMIN=xwj,student01,hodoop,%teachers


which_hosts:Host_Alias

主机名

IP地址

网络地址

其他主机名


runas:Runas_Alias

用户名

组名


command:Cmnd_Alias

命令的全路径

目录(此目录里的所有命令)