1、sudo 是临时的以root权限执行命令,
chmod +w /etc/sudoers
echo "centos ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
chmod -w /etc/sudoers
2、su 是 切换用户
su root # 切换至 root 用
su - root -c "sh /home/a.sh" #使用root 用户执行a.sh ,需要输入密码
sudo su - root -c "sh /home/a.sh" #配置 sudo 免密码 则不需要输入密码了
3、su user与 su - user的 区别
su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。
[centos@m1 ~]$su - root -c "pwd"
/root
[centos@m1 ~]$su root -c "pwd"
/home/centos
# 应 尽可能使用 su - user