su的全稱并不是super user,而是switch user,是不是就突然明白了?是切換用戶的意思。su的一般使用方法是su或者su -,兩種方法雖然只差了1個字符,但也是有比較大的差異的。
公司主營業(yè)務(wù):成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出府谷免費做網(wǎng)站回饋大家。
加入了-參數(shù),就是login-shell的方式,也就是說切換到另一個用戶之后,當(dāng)前的shell會加載對應(yīng)的環(huán)境變量和各種設(shè)置;
如果沒有加入-參數(shù),就是non-login-shell的方式,也就是說當(dāng)前的shell還是加載切換之前的那個用戶的環(huán)境變量以及各種設(shè)置。
如果不想因為切換到另一個用戶導(dǎo)致自己在當(dāng)前用戶下的設(shè)置不可用,那么就可以用non-login-shell的方式;如果切換用戶后,需要用到該用戶的各種環(huán)境變量,那么使用login-shell方式即可。
Linux下 su命令與su - 命令的區(qū)別:
一、切換root身份不同
1、su命令:su只是切換了root身份,但Shell環(huán)境仍然是普通用戶的Shell;而su -連用戶和Shell環(huán)境一起切換成root身份了。只有切換了Shell環(huán)境才不會出現(xiàn)PATH環(huán)境變量錯誤,報command not found的錯誤。
2、su - 命令:su切換成root用戶以后,pwd一下,發(fā)現(xiàn)工作目錄仍然是普通用戶的工作目錄;而用su -命令切換以后,工作目錄變成root的工作目錄了。
二、采用su deploy命令后,取目標(biāo)用戶不同
1、su命令:su不會讀取目標(biāo)用戶的環(huán)境配置文件,如圖。
2、su - 命令:su - 讀取目標(biāo)用戶的環(huán)境配置文件,如圖。
綜上總結(jié):有“-”和無“-”各自的環(huán)境變量不同。
三、service命令
1、su命令:使用 su root 切換到root用戶后,不可以使用service命令;
2、su - 命令:使用 su - 后,就可以使用service命令了。
四、用echo $PATH命令后,環(huán)境量不同
1、su命令:環(huán)境量變?yōu)閡sr。
2、su - 命令:環(huán)境量變?yōu)閛racle。
su命令功能說明:切換用戶身份。
語法:su [-flmp][--help][--version][-][-c 指令][-s
][用戶帳號]
補充說明:su可讓用戶暫時變更登入的身份。變更時須輸入所要變更的用戶帳號與密碼。
參數(shù):
-c指令或--command=指令 執(zhí)行完指定的指令后,即恢復(fù)原來的身份。
-f或--fast 適用于csh與tsch,使shell不用去讀取啟動文件。
-.-l或--login 改變身份時,也同時變更工作目錄,以及HOME,SHELL,USER,LOGNAME。此外,也會變更PATH變量。
-m,-p或--preserve-environment 變更身份時,不要變更環(huán)境變量。
-s
或--shell=
指定要執(zhí)行的shell。
--help 顯示幫助。
--version 顯示版本信息。
[用戶帳號] 指定要變更的用戶。若不指定此參數(shù),則預(yù)設(shè)變更為root。
示例:
su -c ls root #變更帳號為 root 并在執(zhí)行 ls 指令后退出變回原使用者。
su root -f #變更帳號為 root 并傳入 -f 參數(shù)給新執(zhí)行的 shell。
su - test #變更帳號為 test 并改變工作目錄至 test 的家目錄(home dir)。