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的密码。
posted @ 2022-08-22 22:24  liwenchao1995  阅读(78)  评论(0编辑  收藏  举报