Linux切換用戶的兩種實(shí)現(xiàn)方式
sudo -su user1
與 su - user1
都可以讓當(dāng)前用戶切換到 user1
的身份執(zhí)行命令或進(jìn)入該用戶的交互式 Shell。但它們?cè)跈?quán)限認(rèn)證方式、環(huán)境變量繼承和 Shell 初始化過(guò)程等方面存在一些差異。
權(quán)限認(rèn)證方式
su - user1
su
是 “switch user” 的縮寫(xiě),默認(rèn)情況下需要你輸入目標(biāo)用戶 (user1
) 的密碼(如果你當(dāng)前是非 root 用戶)。- 如果你是 root 用戶執(zhí)行
su - user1
,則無(wú)需輸入密碼。
sudo -su user1
sudo
是根據(jù)/etc/sudoers
配置文件來(lái)判斷是否有權(quán)限以user1
的身份執(zhí)行命令。- 當(dāng)你使用
sudo -su user1
時(shí),不需要知道user1
的密碼,而是需要當(dāng)前用戶對(duì)sudo
的授權(quán)(通常輸入當(dāng)前用戶自己的密碼,或在無(wú)密碼配置的 sudo 情況下無(wú)需密碼)。
環(huán)境和 Shell 初始化
su - user1
- 帶
-
的su
會(huì)啟動(dòng)一個(gè)仿真登錄(login shell),類(lèi)似于login
用戶過(guò)程。 - 這意味著它會(huì)讀取
user1
的登錄 Shell 初始化文件(例如.bash_profile
、.profile
等),并清空大部分環(huán)境變量,用user1
的默認(rèn)環(huán)境變量替換。 - 換句話說(shuō),是以
user1
完整登錄環(huán)境啟動(dòng) Shell,會(huì)切換到user1
的主目錄,并以user1
的 Shell 配置為準(zhǔn)。
sudo -su user1
- 這里的
sudo -su user1
實(shí)際上等價(jià)于sudo -s -u user1
,-s
選項(xiàng)告訴sudo
啟動(dòng)一個(gè)交互式 Shell,但這個(gè) Shell 不一定是一個(gè)“登錄 Shell”。 sudo
默認(rèn)會(huì)保留調(diào)用者的一些環(huán)境變量(除非你使用sudo -i
來(lái)模擬登錄)。- 因此,與
su - user1
相比,sudo -su user1
啟動(dòng)的 Shell 環(huán)境更接近原先用戶的環(huán)境,而不是完全清空和重新載入user1
的登錄配置。
總結(jié)對(duì)比
認(rèn)證方式:
su - user1
:需要user1
的密碼(除非當(dāng)前是 root)。sudo -su user1
:需要當(dāng)前用戶在sudoers
中有權(quán)限,以自身認(rèn)證方式(當(dāng)前用戶密碼或無(wú)密碼sudo)切換,無(wú)需user1
的密碼。
環(huán)境初始化:
su - user1
:像登錄user1
一樣初始化 Shell 環(huán)境,清空并使用user1
的環(huán)境變量和啟動(dòng)文件。sudo -su user1
:以sudo
的方式切換用戶,但不完全模擬登錄,會(huì)保留一些原用戶環(huán)境變量,Shell 初始化不如su - user1
的完整。
如果你的目標(biāo)是完全以 user1
的身份和環(huán)境進(jìn)入新 Shell(包括環(huán)境變量、主目錄、初始化文件等),su - user1
更接近一個(gè)“干凈”的登錄環(huán)境。
如果只是需要以 user1
的權(quán)限執(zhí)行命令且無(wú)需 user1
的密碼,那么使用 sudo -su user1
會(huì)更加方便。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
linux環(huán)境下安裝jdk和Tomcat詳細(xì)步驟
大家好,本篇文章主要講的是linux環(huán)境下安裝jdk和Tomcat詳細(xì)步驟,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收一下,方便下次瀏覽2021-12-12Apache偽靜態(tài)(Rewrite).htaccess文件詳解與配置技巧
Apache偽靜態(tài)(Rewrite).htaccess是一個(gè)純文本文件,它里面存放著Apache服務(wù)器配置相關(guān)的指令,主要的作用有:URL重寫(xiě)、自定義錯(cuò)誤頁(yè)面、MIME類(lèi)型配置以及訪問(wèn)權(quán)限控制等2025-03-03Linux系統(tǒng)下Nginx支持ipv6配置的方法
這篇文章主要介紹了Linux系統(tǒng)下Nginx支持ipv6的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Linux之配置路由轉(zhuǎn)發(fā)功能的測(cè)試
這篇文章主要介紹了Linux之配置路由轉(zhuǎn)發(fā)功能的測(cè)試,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05Vmvare虛擬機(jī)給ubuntu根目錄分區(qū)介紹
大家好,本篇文章主要講的是Vmvare虛擬機(jī)給ubuntu根目錄分區(qū)介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12linux中高并發(fā)socket最大連接數(shù)的優(yōu)化詳解
這篇文章主要給大家介紹了關(guān)于linux中高并發(fā)socket最大連接數(shù)優(yōu)化的相關(guān)資料,文中介紹的很詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-02-02CentOS 7.2配置Apache服務(wù)httpd(上)
這篇文章主要為大家詳細(xì)介紹了CentOS 7.2配置Apache服務(wù) httpd上篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11