su- 與su的區別


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

**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 username是不改變當前變量
su - username是改變為切換到用戶的變量
也就是說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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM