使用命令“su”直接切换用户的时候,我们会发现用户的变量环境不会发生变化,而使用“su -”命令切换用户的时候则会直接切换到被切换用户的变量环境。

使用su切换:

[root@localhost ~]# pwd

/root

[root@localhost ~]# echo "$PATH"

/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

[root@localhost ~]# su test1

[test1@localhost root]$ pwd

/root

[test1@localhost root]$ echo "$PATH"

/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

从以上显示中我们可以看出,使用命令“su ”直接切换用户变量环境不变。且切换完成后,原来在什么目录完成后还在什么目录。

使用“su -”切换

[root@localhost opt]# pwd

/opt

[root@localhost opt]# echo "$PATH"

/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

[root@localhost opt]# su - test1

[test1@localhost ~]$ pwd

/home/test1

[test1@localhost ~]$ echo "$PATH"

/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/test1/bin

从以上命令中我们可以看到,切换完成用户后变量环境变成了普通用户的变量环境,并不是root用户的变量环境了。而且切换完成后用户的目录回到了被切换用户的家目录。