sudo 和su的区别

sudo就是使用某某用户的权限去执行命令,没有环境的支持,没具体用户的就是root用户,它是弱版的su

liaoxinxi@RCM-RSAS-V6-Dev ~/bvs/login $ echo $LOGNAME
liaoxinxi
liaoxinxi@RCM-RSAS-V6-Dev ~/bvs/login $ sudo echo $LOGNAME
liaoxinxi

sudo能够限制部分用户执行特定命令,这样就有了管理的基础

sudo会记入日志,看看用户执行了什么

sudo提供配置文件(/etc/sudoers),用户可在其上配置,可用visudo来编辑来保证不出语法错误

bailing ALL=(ALL) /usr/sbin/tcpdump             # 运行 sudo 时需要用户密码
bailing ALL=(ALL) NOPASSWD:/usr/sbin/tcpdump    # 运行 sudo 时无需密码
(ALL)代表用户

$sudo -l

User liaoxinxi may run the following commands on this host:
(ALL) NOPASSWD: ALL

sudo su - root 这样就不用输入密码啦

使用流程:

当用户运行sudo时,系统将在/etc/sudoers搜寻该用户是否有该权限,看看是否需要密码,如果需要就提示密码,如果切换的用户和现在的用户相同那自然就不需要口令啦

 

su则是用于切换用户,切换到超级用户后权限非常高,一般不提倡采用,su -或者su -l都会切换用户的环境,-有减去原用户的环境