linux su && su - && sudo && sudo- 的区别
linux su && su - && sudo && sudo- 的区别
之前一直对su,su-,sudo,sudo -不理解,有什么区别呢他们?
在这之前,我们要先明确一个事,就是:
root有最高权限,所以用root切换账号到非root用户的时候,当我们用su\su-\sudo\sudo -的时候他们的区别并不明显,但是当我们切换到一个非root用户,再用上述4个命令切换用户时就能感觉到明显区别了。
区别
下面假设我切换到了xiaoli这个账号,然后分别使用4个命令去切换到用户 liwenchao 感受下:
sudo授权
在这之前,我们记得需要先给xiaoli这个账号授权,如果不授权,xiaoli是没办法 su liwenchao的,会报错
xiaoli is not in the sudoers file. This incident will be reported.
# 授权
echo "xiaoli ALL=(ALL) ALL" >> /etc/sudoers
区别总结
- su: su 进入一个新的账户,例如su liwenchao,需要输入liwenchao的密码,但是仍然保留xiaoli账号下的环境变量
- su-: su - 进入一个新的账户,例如su - liwenchao,需要输入liwenchaode的密码,会切换到liwenchao这个账号下的环境变量
- sudo: 与su不同,su命令用于切换到其他用户身份,而sudo命令则允许授权用户以其他用户的身份执行特定命令,例如 sudo liwenchao 需要输入xiaoli的密码
- sudo -: 这个和上面大同小异,当sudo - liwenchao的时候输入的密码也是xiaoli的密码。