1、su和su - 的區別
在我的fc6系統下用普通用戶登錄,然後用su命令切換到超級用戶,再輸入ifconfig命令,報錯:command not find。而如果用su -命令切換到超級用戶,再輸入ifconfig命令則能成功執行。這其中涉及的就是su命令與su -命令的區別,man su得到的幫助文檔如下:
-, -l, --login make the shell a login shell
翻譯過來的意思如下:
-.-l或--login 改變身份時,也同時變更工作目錄,以及HOME,SHELL,USER,LOGNAME。此外,也會變更PATH變量。
說簡單點就是用su命令不會改變當前工作目錄以及HOME,SHELL,USER,LOGNAME。此外,也會變更PATH變量,而用su -命令則默認改變成root用戶了。打個比方:
在普通用戶下輸入:
$pwd
/home/mgqw (當前用戶目錄)
$su
****** (輸入密碼)
#pwd (再次查看路徑)
/home/mgqw (還是當前用戶目錄)
但是如果換成su -的話結果如下:
$pwd
/home/mgqw (當前用戶目錄)
$su -
****** (輸入密碼)
#pwd (再次查看路徑)
/root (切換到超級用戶目錄)
2、如果在一個root用戶執行的sh腳本中,部分地方需要使用其它用戶執行命令,采用如下方式
/bin/su - 切換的用戶 -c "執行的命令"