sudo su - 和 sudo -i 有什么区别?

sudo su - 和 sudo -i 有什么区别?

据我了解,他们做的是相同的:他们要求我输入密码(如果我被允许进入 /etc/sudoers),然后给我一个以 root 身份登录的 shell。

它们之间有什么区别吗?

sudo su -
sudo -i

另外,

sudo su
sudo -s

我认为他们都要求我的密码,并给我一个带有我的旧环境变量的 shell。

答案1

您所想知道的命令对之间几乎没有区别。

第一对尝试模拟以新用户身份进行全新登录 - 所提供的环境变量可能会有所不同,因为sudo su -将尝试保留现有的环境变量,而sudo -i将设置非常具体的环境变量并删除所有其他变量(检查手册页了解具体信息)。

对于第二对,行为上的区别在于:sudo su将始终启动用户中列出的 shell /etc/passwd,而sudo -s将首先检查环境变量,并且仅在未设置时SHELL执行 shell 。/etc/passwdSHELL

相关内容