Linux中su命令和su - 命令的區別

語法:

$ su [user_name]

su  命令可以用來交互地更改你的用戶ID和組ID。  Su是switch user 或set user id的一個縮寫。這個命令讓你開啓一個子進程,成爲新的用戶 ID 和賦予你存取與這個用戶ID 關聯所有文件的存取權限。因此,出於安全的考慮,你在實際轉換身份時,會被要求輸入這個用戶帳號的密碼。  如果沒有參數,su 命令將你轉換爲 root(系統管理員)。root 帳號有時也被稱爲超級用戶,因爲這個用戶可以存取系統中的任何文件。也正是這個原因,許多人將su命令看成是 supper-user(超級用戶)的一個縮寫。當然,你必須要提供 root密碼。  想要回到你原先的用戶身份,不要再使用 su 命令,你只需要使用 exit命令退出你使用su命令而生成的新的對話進程。

$ su – username

一些配置文件是爲你的對話線索而設立的。當你使用命令 su username時,你的對話特徵和你原始的登錄身份一樣。如果你想要你的對話進程擁有轉換後的用戶 ID一致的特徵,你要使用短斜槓: su – username

su  後面不加用戶是默認切到 root

su  是不改變當前變量

su - 是改變爲切換到用戶的變量

也就是說su只能獲得root的執行權限,不能獲得環境變量

而su -是切換到root並獲得root的環境變量及執行權限


su命令和su -命令最大的本質區別就是:前者只是切換了root身份,但Shell環境仍然是普通用戶的Shell;而後者連用戶和Shell環境一起切換成root身份了。只有切換了Shell環境纔不會出現PATH環境變量錯誤。su切換成root用戶以後,pwd一下,發現工作目錄仍然是普通用戶的工作目錄;而用su -命令切換以後,工作目錄變成root的工作目錄了。用echo $PATH命令看一下su和su -以後的環境變量有何不同。以此類推,要從當前用戶切換到其它用戶也一樣,應該使用su -命令,後面加上用戶名即可。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章