标签:
一、su (switch user),可以临时性的改变当前用户,即可让用户暂时变更登录的身份。利用su改变身份后,默认并不会改变工作目录,但会变更HOME,SHELL,USER,LOGNAME等环境变量。
常用选项
"-c" : 执行完指定命令后,即恢复原来的身份,即退出。
"" : 改变身份是,不改变工作目录,不会用引切换目标用户的环境变量。
"-" : 改变身份时,也同时改变工作目录,会引用切换目标用户的环境变量。
二、sudo用于指定用户某个用户以某种身份运行某个程序。
sudo可以让用户以其他的身份来执行指定的命令,默认的身份为root。
在/etc/sudoers中设定了可执行sudo命令的用户.
该文件需要用专门的命令#visudo打开修改,其可以检查该文件的语法错误.
在/etc/sudoers中定义sudo语句的语法格式为:
who where=(who) what 解释为
谁,可以在那些主机上以谁的身份,执行什么命令.
例:tom 192.168.0.1=(root) /usr/bin/useradd,...,...,
其中who,where,(who),what分别可以定义为一个组.分别叫做用户组,主机组,身份组和命令组.他们的语法格式为.
关键字 组名(全部大写) = 组内成员,组内成员,.....
定义用户组
User_Alias USERGNAME = USERNAME,USERNAME
其中SUERNAME接受的表示方式为:a、用户名
b、%groupname 系统用户组名
c、+netgroup net组
d、otheruser_alias 其它组。
定义主机组
Host_Alias HOSTGNAME = HOSTIP,..,.....
HOSTIP接受的表示方式为:a、HOSTNAME 主机名
b、IP_ADDR IP地址
c、NETWORK(/NETMASK) 网络地址
d、OTHERHOSTGNAME 其他主机组
定义运行身份
Runas_Alias RUNGNAME = RUNUSERNAME
RUNSUERNAME接受的表示方式为:a、#uid uid
b、%group 以系统组的身份
c、ALL 以所有人的身份
定义命令组
Cmmd_Alias CMMGDNAME = COMMAD,COMMAD...
COMMAD接受的命令格式为:a、/dir/to/commd 命令的全路径
b、/dir/to/commd ARG 加参数
c、/dir 整个目录中的命令
命令组中可以用PASSWD,NOPASSWD,!
其中PASSWD表示该标签以后所有命令用sudo执行时输入密码。
NOPASSWD表示该标签以后的所有命令不用输入命令
“!”表示不能执行该条命令
在sudoers中有其语法格式和样例。可以用#man sudoers查看
sudo -i 切换用户,并改变工作目录,相应环境变量要加载;
sudo -s 切换用户,不改变工作目录,相应环境变量不加载。
标签:
原文地址:http://my.oschina.net/lenglingx/blog/413384