歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

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用戶的家目錄下。
 

Copyright © Linux教程網 All Rights Reserved