su命令:

su 用户名 :切换用户
exit :退出当前用户,返回到之前的用户
su root || su - || su - root :切换到root用户,三者均可
su -c “命令” 用户名 :切换到某用户,执行某命令,并返回当前用户

sudo命令:

使用场景:处于普通用户但需要使用root权限进行操作。

常用命令
sudo command -u username :以指定用户的身份执行命令,除root以外的其他用户。
sudo -k Kill :清除“入场卷”上的时间,下次再使用sudo时要再输入密码。(仅记录,未测试)
sudo -K Sure kill :与-k类似,但是它还要撕毁“入场卷”,也就是删除时间戳文件。(仅记录,未测试)
sudo -b command :在后台执行指定的命令。(仅记录,未测试)

特点
sudo能够限制指定用户在指定主机上运行某些命令。
sudo可以提供日志,忠实地记录每个用户使用sudo做了些什么,并且能将日志传到中心主机或者日志服务器。
sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机。它默认的存放位置是/etc/sudoers。
sudo使用时间戳文件来完成类似“检票”的系统。当用户执行sudo并且输入密码后,用户获得了一张默认存活期为5分钟的“入场券”(默认值可以在编译的时候改变)。超时以后,用户必须重新输入密码。

普通配置

[zhz@bw66 ~]$ clear
[zhz@bw66 ~]$ su root				切换到root用户
[root@bw66 zhz]# cd /etc/					
[root@bw66 etc]# chmod u+w sudoers		给sudoers文件添加“写”的权限
[root@bw66 etc]# vim sudoers			打开后添加:zhz ALL=(ALL)NOPASSWD:ALL
										# “zhz”, 我的普通用户
[root@bw66 etc]# chmod u-w sudoers		给sudoers文件减去“写”的权限,还原。

配置完成!!!

推荐配置

[zhz@bw66 /]$ su root		切换root用户
Password: 					输入密码	
[root@bw66 /]# visudo		直接使用“visudo”命令编辑(防止两个用户同时修改,其次有语法检查)

zhz ALL=(ALL)NOPASSWD:ALL	# “zhz”普通用户  #NOPASSWD 免密

文末值得一提的是,su和sudo都是一个拥有特殊权限位的命令。
其属于设置了SETUID位的二进制文件,它的所有者是root,所以每个用户都可以像root那样执行该程序。

[root@bw66 /]# ls -l /bin/su
-rwsr-xr-x. 1 root root 34904 Nov 22  2013 /bin/su
[root@bw66 /]# ls -l /usr/bin/sudo
---s--x--x. 1 root root 123832 Nov 22  2013 /usr/bin/sudo
注意:权限位的“s”!!!不是普通的“x”!!!