大部分linux發行版的預設賬戶是普通使用者,而更改系統檔案或者執行某些命令,需要root身份才能進行,這就需要從當前使用者切換到root使用者。linux中切換使用者的命令是su或su -。前天我在使用useradd這個命令時,才體會到這兩者的本質區別。
su與su -命令的本質區別
我首先是用su命令切換到root身份的,但是執行useradd時,出現錯誤:bash: useradd: command not found。google了一下,原因是在這個用su命令切換過來的root使用者上。
su命令和su -命令最大的本質區別就是:前者只是切換了root身份,但shell環境仍然是普通使用者的shell;而後者連使用者和shell環境一起切換成root身份了。只有切換了shell環境才不會出現path環境變數錯誤。su切換成root使用者以後,pwd一下,發現工作目錄仍然是普通使用者的工作目錄;而用su -命令切換以後,工作目錄變成root的工作目錄了。用echo $path命令看一下su和su -以後的環境變數有何不同。以此類推,要從當前使用者切換到其它使用者也一樣,應該使用su -命令。
linux就是這樣,有時候配置檔案多了或者少了乙個空格,服務就執行不了。細節問題一定要注意,這樣才能少走彎路!
免費提供最新linux技術教程書籍,為開源技術愛好者努力做得更多更好:
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...