据我了解,他们做的是相同的:他们要求我输入密码(如果我被允许进入 /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/passwd
SHELL