感谢支持
我们一直在努力

Linux Shell中切换用户 su与su – 的区别

在Linux Shell中遇到这么一个问题,在Oracle用户下运行一个shell,运行过程中需要切换到另外一个用户(load),删除该用户的一些文件。


大致思路如下(shell脚本的一部分):


passwd=load


su – load <<!


$passwd


cd ~/backup


rm *.txt


exit


!



顺便讲下su 和 su – 的区别


‍前者只是切换了身份,但SHELL环境仍然是原用户的SHELL;www.linuxidc.com而后者连用户和SHELL环境一起切换成新用户的了。只有切换了SHELL环境才不会出现PATH环境变量错误。



具体案例:


有人用root登陆。然后切换到oracle用户下,执行sqlplus 命令 却报错:‍command not found!


就是因为使用的是su ,而不是su –



另外还有个很明显的区别:


比如说 root用户在/root/目录下, su oracle,


切换到了oracle 用户,但是目录仍然在/root/下。


如果使用su – oracle


你可以发现目录也切换到oracle用户的家目录下。

赞(0) 打赏
转载请注明出处:服务器评测 » Linux Shell中切换用户 su与su – 的区别
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏