Linux Shell切换用户su与su-的区别


[ Linux Shell切换用户su与su-的区别 ]

 

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

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

  passwd=load

  su - load <

  $passwd

  cd ~/backup

  rm *.txt

  exit

  !

  顺便讲下su 和 su - 的区别

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

  具体案例:

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

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

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

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

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

  如果使用su - oracle

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM