su - root is the same as su -
just like login as root, then the shell is login shell,
which mean it will expericene a login process,
usually .bash_profile and .bashrc will be sourced
su root is the same as su
like you open an interactive shell in root name,
then only .bashrc will be sourced.
su 後面不加使用者是預設切到 root
su 是不改變目前變量
su - 是改變為切換到使用者的變量
也就是說su隻能獲得root的執行權限,不能獲得環境變量
而su -是切換到root并獲得root的環境變量及執行權限
文法:
$ 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