简单的说 su -
会把root的环境变量设置带到新进入的会话。
查看su手册页可以知道:
su使用替换的用户和组ID来运行shell
就是说如果你使用
# su -
我们正在将用户切换到 root 用户并要求系统更改适用于 root 的所有环境变量并将我带到 root 的主目录
使用 su 与在终端上登录新会话相同
例如
[jack@server ~]$pwd /home/jack
[jack@server ~]$echo $PATH /usr/bin:/usr/sbin:/usr/local/bin:/bin:/usr/bin:/home/jack/bin
[jack@server ~]$sudo su - [root@server ~]# pwd /root
[root@server jack]# echo $PATH /usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
但是,如果只键入su而不键入 -
dash(),则会话将切换到root(如果su命令中未提及任何用户名),而不应用root用户的任何环境变量。
新用户也保持在与使用 su 之前相同的目录中
[jack@server ~]$echo $PATH /usr/bin:/usr/sbin:/usr/local/bin:/bin:/usr/bin:/home/jack/bin
[jack@server ~]$pwd /home/jack
[jack@server ~]$sudo su [root@server jack]# pwd /home/jack
[root@server jack]# echo $PATH /usr/bin:/usr/sbin:/usr/local/bin:/bin:/usr/bin:/home/jack/bin
日期:2020-06-02 22:17:21 来源:oir作者:oir