您的位置:首页 > 运维架构 > Linux

linux su sudo命令详解

2015-03-08 19:15 302 查看
#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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: