su 与su - 都可切换用户,但不同之处在于:
su 切换用户,只切换了身份,对于环境变量未切换
su - 切换用户,既切换了身份,又切换了环境变量
举例:
su 操作 :
[root@i-rixuvhm5 ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@i-rixuvhm5 ~]# echo $PATH
/java/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@i-rixuvhm5 ~]# su mysql
[mysql@i-rixuvhm5 root]$id mysql
uid=500(mysql) gid=500(mysql) groups=500(mysql)
[mysql@i-rixuvhm5 root]$echo$PATH
/java/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[mysql@i-rixuvhm5 root]$
可以看到,当用su切换到mysql用户,环境变量path依然是原来的
su - 操作:
[root@i-rixuvhm5 ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@i-rixuvhm5 ~]# echo $PATH
/java/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@i-rixuvhm5 ~]# su -mysql
[mysql@i-rixuvhm5 root]$id
uid=500(mysql) gid=500(mysql) groups=500(mysql)
[mysql@i-rixuvhm5 root]$echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/mysql/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
[mysql@i-rixuvhm5 root]$