linux su sudo命令详解

#su [OPTION] USERNAME 切换用户

[OPTION]

- 变更当前的工作环境PWD

空 默认切换为root用户


默认情况下使用su只是将PAHT和用户切换为USERNAME的,并不变更PWD。使用-则和用USERNAME登陆在实质上是一样的。


#sudo [OPTION] COMMAND

某用户在不切换用户的情况下以另一个用户的权限通过某个主机执行某个命令。

[OPTION]


-l 列出当前用户可以使用的所有sudo类命令。


-k 清除认证,下次使用需输入密码。默认第一次输入密码后,5分钟之内不再提示输入密码。


/etc/sudoers 

sudo的配置文件,权限为440。

除去额外配置条目,每一行定义个sudo条目,结构如下:

WHO WHICHHOST=[FLAG:](RUNAS) COMMAND


别名:

类似于组,别名只能使用大写字母。先定义后使用。

使用!表示取反。

1.用户别名 User_Alias

User_Alias NAME=USERNAME|%GROUP|OTHERUSERLIST

USERNAME 当前系统上的用户。

%GROUP 用户组,用%引导。

OTHERUSERLSIT 其他的别名列表。


2.主机别名 Host_Alias

Host_Alias HOST=HOST|IPADD|IP/NETMASK|+GROUP|OTHERHOSTLIST

HOST 主机名

IPADD IP地址

IP/NETMASK IP地址/子网掩码

+GROUP 主机组,用+引导。

OTHERHOSTLIST 其他的别名列表


3.以哪个用户运行 Runas_Alias

Runas_Alias RUNAS=USERNAME|#UID|%GROUP|+NETGROUP|OHTERRUNASLIST

USERNAME 用户名

#UID UID,用#引导。

%GROUP 组名,用%引导。

OTHERRUNASLIST 其他的别名列表


4.命令 Cmnd_Alias

Cmnd_Alias CMND=COMMAND|COMMDIR|OTHERCMNDLIST

COMMAND 命令,使用绝对路径。

COMMDIR 目录,包含此目录内的所有命令

OTHERCMNDLIST 其他的别名列表


FLAG(标签):

NOPASSWD 用户无需输入密码

PASSWD 需要密码


相关的操作日志可以在/var/log/secure中查看。此日志文件的权限为600,只允许root查看。


例如:

1.hadoop用户使用root执行useradd

#vimsudo

hadoop ALL=(root) /usr/sbin/useradd,/usr/sbin/usermod


hadoop$ sudo /usr/sbin/useradd tom

[sudo] passowrd for hadoop:

hadoop$


2.清除hadoop用户的认证,并在配置文件中变更为useradd不需要密码,usermod需要密码。

#sudo -k

#vimsudo

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


3.创建别名组,并禁止修改root密码:

#visudo

User_Alias USERADMIN=hadoop,%hadoop,%useradmin


Cmnd_Alias USERADMINCMD=/usr/sbin/useradd,/usr/sbin/usermod,/usr/sbin/userdel,/usr/bin/passwd[A-Za-z]*,!/usr/bin/passwd root

这里的[A-Za-z]*类似于文件名通配,不是正则表达式。



USERADMIN ALL=NOPASSWD:USERADMINCMD





#visudo [OPTION] 编辑sudo配置文件的专用命令,可以检查配置文件错误。

[OPTION]

-f FILE 指定其他的sudoers文件



#man sudoers 查看有关/etc/sudoers的具体定义内容。


本文出自 “小私的blog” 博客,请务必保留此出处http://ggvylf.blog.51cto.com/784661/1618399

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。