概述
su root和su - root在使用上有一些区别。
- su root:
在使用su root命令时,不会加载root用户的环境变量。这意味着您将在当前用户的环境下切换到root用户身份,不会改变当前工作目录和环境设置。
您仍然会保留当前用户的权限和环境设置,只是切换到root用户的身份。
- su - root:
使用su - root命令时,会加载root用户的完整环境变量。这意味着您将切换到root用户的身份,并使用root用户的环境设置。
当使用su - root时,会将当前工作目录更改为root用户的主目录(/root),并加载root用户的shell配置文件(例如.bashrc)。
通常情况下,推荐使用su - root来切换到root用户身份,因为这样可以确保您以root用户的完整环境执行命令,并避免由于环境变量不一致而导致的问题。然而,如果您只是需要在当前用户身份下暂时执行某些需要root权限的命令,那么使用su root可能更为方便。
举例
当使用su root和su - root时,假设当前用户是"bob",以下是两种方式的区别和示例:
- su root:
不加载root用户的环境变量,保留当前用户的权限和环境设置。
不改变当前工作目录。
$ pwd
/home/bob
$ echo $PATH
/usr/local/bin:/usr/bin:/bin
$ su root
Password: [输入root密码]
# pwd
/home/bob //仍在原来的bob 用户 主目录
# echo $PATH
/usr/local/bin:/usr/bin:/bin
# whoami
root
- su - root:
加载root用户的完整环境变量。
将当前工作目录更改为root用户的主目录。
$ pwd
/home/bob
$ echo $PATH
/usr/local/bin:/usr/bin:/bin
$ su - root
Password: [输入root密码]
# pwd
/root //跳到了root用户 的主目录
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# whoami
root