su 与su - 切换用户最明显的区别就是su - 切换后就会回到用户的主目录,
比如su - abc 然后pwd就会发现回到了/home/abc
环境变量也是一个区别。
su 是切换到其他用户,但是不切换环境变量(比如说那些你用export命令查看一下,就知道两个命令的区别了) su - 是完整的切换到一个用户环境
1、切换root身份不同
su命令:su只是切换了root身份,但shell环境仍然是普通用户的shell;而su-连用户和shell环境一切切换成root身份了。只有切换了shell环境才不会出现PATH环境变量错误,报command not found的错误。
su-命令:su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su-命令切换以后,工作目录变成root的工作目录了。
2、采用su deploy命令后,取目标用户不同
su命令:su不会读取目标用户的环境配置文件。
su-命令:su-读取目标用户的环境配置文件。
综上总结:有-和无-各自的环境变量不同。
3、service命令
su命令:使用su root切换到root用户后,不可以使用service命令;
su-命令:使用su-后,就可以使用service命令了。
4、用echo $PATH命令后,环境量不同
su命令:环境量变为usr。
su-命令:环境量变为oracle。