sudo -i 和sudo su有什么区别
时间: 2024-06-14 17:09:16 浏览: 194
sudo -i和sudo su都是用于切换用户身份的命令,但它们在实现上有一些区别。
1. sudo -i:
- sudo -i是以目标用户的身份登录,并启动一个新的登录会话。
- 它会加载目标用户的环境变量,包括用户的家目录和配置文件。
- 使用sudo -i后,你将进入目标用户的家目录,并且你的工作目录也会切换到目标用户的家目录。
- 例如,如果你使用sudo -i切换到root用户,你将进入root用户的家目录(/root)。
2. sudo su:
- sudo su是以目标用户的身份启动一个新的shell。
- 它不会加载目标用户的环境变量,只是切换到目标用户的身份。
- 使用sudo su后,你将保留当前用户的工作目录,不会切换到目标用户的家目录。
- 例如,如果你使用sudo su切换到root用户,你将保留当前工作目录。
综上所述,sudo -i更适合需要完全切换到目标用户身份并加载其环境变量的情况,而sudo su更适合只需要切换到目标用户身份而不改变当前工作目录的情况。
相关问题
sudo -i命令和sudo su
sudo -i命令和sudo su命令都是用于切换用户身份的命令,可以获取超级用户(root)权限。
sudo -i命令是在当前用户下以root用户身份登录,并且切换到root用户的环境变量和工作目录。使用sudo -i命令后,会要求输入当前用户的密码,验证通过后即可切换到root用户。
sudo su命令是以root用户身份登录,并且切换到root用户的环境变量和工作目录。使用sudo su命令后,会要求输入当前用户的密码,验证通过后即可切换到root用户。
这两个命令的作用相同,都可以获取root权限,但是sudo -i更推荐使用,因为它会保留当前用户的环境变量,可以避免一些权限问题。
sudo -i和sudo su区别
sudo -i和sudo su都可以让用户以root身份登录,但是它们之间有一些区别:
1. sudo -i会启动一个新的shell,这个shell会以root用户的环境变量和工作目录启动。而sudo su则不会启动新的shell,它只是切换到root用户。
2. sudo -i会读取root用户的.bashrc文件,而sudo su则不会读取。
因此,如果你需要完全以root用户的身份登录并使用root用户的环境变量和工作目录,那么使用sudo -i是更好的选择。如果你只需要切换到root用户执行一些命令,那么使用sudo su就可以了。
阅读全文