su和su 的區別

2021-09-06 16:16:43 字數 827 閱讀 9329

linux中切換使用者的命令是su或su -。前天我在使用useradd這個命令時,才體會到這兩者的本質區別。如圖:

我首先是用su命令切換到root身份的,但是執行useradd時,出現錯誤:bash: useradd: command not found。google了一下,原因是在這個用su命令切換過來的root使用者上。

su命令和su -命令最大的本質區別就是:su 只是切換了root身份,但shell環境仍然是普通使用者的shell;

而su - 連使用者和shell環境一起切換成root身份了。只有切換了shell環境才不會出現path環境變數錯誤。

su切換成root使用者以後,pwd一下,發現工作目錄仍然是普通使用者的工作目錄;

而用su -命令切換以後,工作目錄變成root的工作目錄了。用echo $path命令看一下su和su -以後的環境變數有何不同。以此類推,要從當前使用者切換到其它使用者也一樣,應該使用su -命令。如圖:

su - root:表示人以root身份登入

su root:表示與root建立乙個鏈結,通過root執行命令

su  後面不加使用者是預設切到 root

su  是不改變當前變數

su - 是改變為切換到使用者的變數 

也就是說su只能獲得root的執行許可權,不能獲得環境變數

而su -是切換到root並獲得root的環境變數及執行許可權

su 和su 的區別

剛才用su到root後,用命令gedit發現會出錯 gedit 2976 warning 連線已關閉 gedit 2976 eggsmclient warning failed to connect to the session manager none of the authentication ...

su 和su的區別

joe為普通使用者,root為超級使用者。現象如下 joe trixbox1 su 口令 ifconfig bash ifconfig command not found su命令格式 su p c command username 在切換當前使用者時切換使用者工作環境 p 在切換當前使用者時不切換...

su 和 su 的區別

su命令和su 命令最大的本質區別 su命令和su 命令最大的本質區別就是 前者只是切換了root身份,但shell環境仍然是普通使用者的shell 而後者連使用者和shell環境一起切換成root身份了。只有切換了shell環境才不會出現path環境變數錯誤。su切換成root使用者以後,pwd一...