語法:
$ 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
-命令,後面加上用戶名即可。