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