Linux下su與su 命令的本質區別

2021-05-25 15:31:56 字數 845 閱讀 9500

問題現象:linux系統下用普通使用者登入,然後用su命令切換到超級使用者,再輸入ifconfig命令,報錯:command not find。而如果用su -命令切換到超級使用者,再輸入ifconfig命令則能成功執行。

解決方案:大部分linux發行版的預設賬戶是普通使用者,而更改系統檔案或者執行某些命令,需要root身份才能進行,這就需要從當前使用者切換到root使用者,linux中切換使用者的命令是su或su -,下面就su命令和su -命令最大的本質區別給大家詳解一下:

前者只是切換了root身份,但shell環境仍然是普通使用者的shell;而後者連使用者和shell環境一起切換成root身份了。只有切換了shell環境才不會出現path環境變數錯誤。su切換成root使用者以後,pwd一下,發現工作目錄仍然是普通使用者的工作目錄;而用su -命令切換以後,工作目錄變成root的工作目錄了。用echo $path命令看一下su和su -以後的環境變數有何不同。以此類推,要從當前使用者切換到其它使用者也一樣,應該使用su -命令。

打個比方:

在普通使用者下輸入:

$pwd

/home/test (當前使用者目錄)

$su****** (輸入密碼)

#pwd (再次檢視路徑)

/home/test (還是當前使用者目錄)

但是如果換成su -的話結果如下:

$pwd

/home/test(當前使用者目錄)

$su -

****** (輸入密碼)

#pwd (再次檢視路徑)

/root (切換到超級使用者目錄)

Linux下su與su 命令的區別

使用 su root 切換到root使用者後,不可以使用service命令 使用 su 後,就可以使用service命令了。原因 su命令和su 命令區別就是 su只是切換了root身份,但shell環境仍然是普通使用者的shell 而su 連使用者和shell環境一起切換成root身份了。只有切換...

Linux下su與su 命令的區別

在啟動伺服器ntpd服務時遇到乙個問題 使用 su root 切換到root使用者後,不可以使用service命令 使用 su 後,就可以使用service命令了。原因 su命令和su 命令區別就是 su只是切換了root身份,但shell環境仍然是普通使用者的shell 而su 連使用者和shel...

Linux下su與su 命令的區別

在啟動伺服器ntpd服務時遇到乙個問題 使用 su root 切換到root使用者後,不可以使用service命令 使用 su 後,就可以使用service命令了。原因 su命令和su 命令區別就是 su只是切換了root身份,但shell環境仍然是普通使用者的shell 而su 連使用者和shel...