Linux su,全拼:switch user,命令用于變更為其他使用者的身份,除root外,需要鍵入使用者的密碼。
站在用戶的角度思考問題,與客戶深入溝通,找到扶余網(wǎng)站設(shè)計與扶余網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋扶余地區(qū)。
使用權(quán)限:所有使用者
語法:
su [參數(shù)] [-] [用戶帳號]
參數(shù)說明:
-f或者--fast不必讀啟動檔,僅用于csh或tcsh
-m -p或者-preserve-environment執(zhí)行su時不改變環(huán)境變數(shù)
-c command或者--command=command變更為賬號為USER的使用者并執(zhí)行指令后再變回原來使用者
-s shell或者--shell=shell指定要執(zhí)行的shell,預(yù)設(shè)值為/etc/passwd內(nèi)的該使用者shell
-help 顯示說明文件
--version 顯示版本資訊
-
-l或者--login這個參數(shù)加了之后,就好像是重新login為該使用者一樣,大部分環(huán)境變數(shù)都是以該使用者為主,并且工作目錄也會改變,如果沒有指定USER,內(nèi)定是root
USER 欲變更的使用者賬號
ARG 傳入新的shell參數(shù)
1、內(nèi)容不同
su命令:用于切換用戶,substitute英文含義“代替”的意思。
sudo命令:為superuser do 的簡寫,即使用超級用戶來執(zhí)行命令,一般是指root用戶。
2、用法不同
su命令:不加用戶名默認(rèn)是切換為root用戶,切當(dāng)前目錄不改變,其他環(huán)境變量不變。
sudo命令:查看當(dāng)前用戶可以用sudo執(zhí)行的命令都有哪些。
3、環(huán)境不同
su命令:切換到root用戶,但是并沒有轉(zhuǎn)到root用戶家目錄下,即沒有改變用戶的環(huán)境。
sudo命令:是當(dāng)前用戶切換到root,然后以root身份執(zhí)行命令,執(zhí)行完成后,直接退回到當(dāng)前用戶,而這些的前提是要通過sudo的配置文件/etc/sudoers來進(jìn)行授權(quán)。
su和sudo各有優(yōu)點(diǎn),適當(dāng)用于預(yù)期的用例時,兩者都表現(xiàn)不俗。我偏愛用su處理自己的大部分工作,因為它最適合我和我的工作流程。
su的全稱并不是super user,而是switch user,是不是就突然明白了?是切換用戶的意思。su的一般使用方法是su或者su -,兩種方法雖然只差了1個字符,但也是有比較大的差異的。
加入了-參數(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方式即可。
su命令功能說明:切換用戶身份。
語法:su [-flmp][--help][--version][-][-c 指令][-s
][用戶帳號]
補(bǔ)充說明: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)。