最近在項目環(huán)境方面遇到的坑婆赠,明明配置了環(huán)境變量破花,卻無法使用叠纹,原因是切換用戶時使用的是su而不是su -
su命令和su -命令最大的本質(zhì)區(qū)別就是:前者只是切換了root身份竖慧,但Shell環(huán)境仍然是普通用戶的Shell嫌套;而后者連用戶和Shell環(huán)境一起切換成root身份了。只有切換了Shell環(huán)境才不會出現(xiàn)PATH環(huán)境變量錯誤圾旨。su切換成root用戶以后踱讨,pwd一下,發(fā)現(xiàn)工作目錄仍然是普通用戶的工作目錄砍的;而用su -命令切換以后痹筛,工作目錄變成root的工作目錄了。用echo $PATH命令看一下su和su -以后的環(huán)境變量有何不同廓鞠。以此類推帚稠,要從當(dāng)前用戶切換到其它用戶也一樣,應(yīng)該使用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 后面不加用戶是默認(rèn)切到 root
su username是不改變當(dāng)前變量
su - username是改變?yōu)榍袚Q到用戶的變量
也就是說su只能獲得root的執(zhí)行權(quán)限翁锡,不能獲得環(huán)境變量
而su -是切換到root并獲得root的環(huán)境變量及執(zhí)行權(quán)限
語法:
$ su [user_name]
su 命令可以用來交互地更改你的用戶ID和組ID。 Su是switch user 或set user id的一個縮寫夕土。這個命令讓你開啟一個子進(jìn)程馆衔,成為新的用戶 ID 和賦予你存取與這個用戶ID 關(guān)聯(lián)所有文件的存取權(quán)限。因此怨绣,出于安全的考慮角溃,你在實際轉(zhuǎn)換身份時,會被要求輸入這個用戶帳號的密碼篮撑。
如果沒有參數(shù)减细,su 命令將你轉(zhuǎn)換為 root(系統(tǒng)管理員)。root 帳號有時也被稱為超級用戶赢笨,因為這個用戶可以存取系統(tǒng)中的任何文件未蝌。也正是這個原因,許多人將su命令看成是 supper-user(超級用戶)的一個縮寫茧妒。當(dāng)然萧吠,你必須要提供 root密碼。 想要回到你原先的用戶身份桐筏,不要再使用 su 命令纸型,你只需要使用 exit命令退出你使用su命令而生成的新的對話進(jìn)程。
$ su – username
一些配置文件是為你的對話線索而設(shè)立的。當(dāng)你使用命令 su username時狰腌,你的對話特征和你原始的登錄身份一樣除破。如果你想要你的對話進(jìn)程擁有轉(zhuǎn)換后的用戶 ID一致的特征,你要使用短斜杠: su – username琼腔。
舉個例子:比如在root權(quán)限下給tomcat賦予啟動權(quán)限
給tomcat用戶賦予啟動tomcat8_psa文件的權(quán)限
chown -R tomcat:tomcat tomcat8_psa/
切換到tomcat用戶
su - tomcat
啟動服務(wù)器
./startup.sh