📜  su - 和 su 之间的区别(1)

📅  最后修改于: 2023-12-03 15:35:10.575000             🧑  作者: Mango

su - 和 su 之间的区别

在Linux系统中,su是一种切换用户的命令。在使用su命令时,有两个选项,即su -和su,它们之间的区别非常重要。

su命令

su命令是将当前用户从默认的用户身份切换到其他用户身份。如果使用su命令而没有跟上其他用户的用户名,则默认切换到root用户,这需要在输入密码时进行验证。

使用su命令的一般语法如下:

su [options] [username]

其中,[username]是要切换到的用户名。如果没有指定用户名,则默认切换到root用户。

su -命令

su -命令也是将当前用户从默认的用户身份切换到其他用户身份,但与su命令不同的是,它会同时切换用户环境变量,有助于获得完整的用户环境变量,在使用新用户身份时,其运行环境与该用户登录到系统时的运行环境相同。

使用su -命令的一般语法如下:

su - [options] [username]

其中,[username]是要切换到的用户名。如果没有指定用户名,则默认切换到root用户。

区别

su命令只切换用户身份,但并不会同时切换用户环境变量。因此,使用su命令时,新用户身份将不会拥有原始用户的环境变量。而su -命令可以同时切换用户身份和环境变量,从而具有完整的用户环境变量。

在实际应用中,建议在切换到root用户时使用su -命令,以便获取完整的root用户环境变量。

结论

su -命令会同时切换用户身份和环境变量,su命令只切换用户身份。在切换到root用户时,推荐使用su -命令来获取完整的root用户环境变量。