sudo介绍:
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。
sudo使一般用户不需要知道超级用户的密码即可获得权限。首先超级用户将普通用户的名字、可以执行的特定命令、按 照哪种用户或用户组的身份执行等信息,登记在特殊的文件中(通常是/etc/sudoers),即完成对该用户的授权(此时该用户称为 “sudoer”);在一般用户需要取得特殊权限时,其可在命令前加上“sudo”,此时sudo将会询问该用户自己的密码(以确认终端机前的是该用户本 人),回答后系统即会将该命令的进程以超级用户的权限运行。之后的一段时间内(默认为5分钟,可在/etc/sudoers自定义),使用sudo不需要再次输入密码。
由于不需要超级用户的密码,部分Unix系统甚至利用sudo使一般用户取代超级用户作为管理帐号,例如Ubuntu、Mac OS X等。
1.编辑sudoers文件:
visudo
2.sudoers文件格式:
who which_host=(runas) commands
3.别名:
who User_Alias
which_host Host_Alias
runas Runas_Alias
commands Cmnd_Alias
#别名必须使用而且只能使用大写英文字母的组合
#man sudoers查看帮助信息:
User_Alias MYTESTUSERS=
用户的用户名
%引导的组名
其他用户别名
如:User_Alias USERADMIN=hadoop,%hadoop,%useradmin
Host_Alias MYTESTHOSTS=
主机名
IP
网络地址
其他主机别名
Runas_Alias
用户名
%组名
其他用户别名
Cmnd_Alias
绝对路径的命令
目录
其他命令别名
如:Cmnd_Alias USERCMND=/usr/sbin/useradd,/usr/sbin/userdel,/usr/sbin/usermod,/usr/bin/passwd [A-Za-z]*,! /usr/bin/passwd root
例子:
USERADMIN ALL=(root) NOPASSWD: USERCMND
hadoop ALL=(root) NOPASSWD:/usr/sbin/useradd PASSWD:/usr/sbin/usermod
4.参数详解:
-l 列出当前用户可以使用的所有sudo命令
-k 让认证信息失效