shell su oracle,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用户的家目录下。0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值