linux su命令之用戶之間切換(包含su和su-的區(qū)別)案例詳解

su 是最簡單的用戶切換命令,通過該命令可以實現(xiàn)任何身份的切換,包括從普通用戶切換為 root 用戶、從 root 用戶切換為普通用戶以及普通用戶之間的切換。
普通用戶之間切換以及普通用戶切換至 root 用戶,都需要知曉對方的密碼,只有正確輸入密碼,才能實現(xiàn)切換;從 root 用戶切換至其他用戶,無需知曉對方密碼,直接可切換成功。
su 命令的基本格式如下:
[root@localhost ~]# su [選項] 用戶名
選項:
- -:當前用戶不僅切換為指定用戶的身份,同時所用的工作環(huán)境也切換為此用戶的環(huán)境(包括 PATH 變量、MAIL 變量等),使用 - 選項可省略用戶名,默認會切換為 root 用戶。
- -l:同 - 的使用類似,也就是在切換用戶身份的同時,完整切換工作環(huán)境,但后面需要添加欲切換的使用者賬號。
- -p:表示切換為指定用戶的身份,但不改變當前的工作環(huán)境(不使用切換用戶的配置文件)。
- -m:和 -p 一樣;
- -c 命令:僅切換用戶執(zhí)行一次命令,執(zhí)行后自動切換回來,該選項后通常會帶有要執(zhí)行的命令。
【例 1】
[lamp@localhost ~]$ su -root
密碼: <-- 輸入 root 用戶的密碼
#"-"代表連帶環(huán)境變量一起切換,不能省略
【例 2】
[lamp@localhost ~]$ whoami
lamp
#當前我是lamp
[lamp@localhost ~]$ su - -c "useradd user1" root
密碼:
#不切換成root,但是執(zhí)行useradd命令添加user1用戶
[lamp@localhost ~]$ whoami
lamp
#我還是lamp
[lamp@localhost ~]$ grep "user1' /etc/passwd
userl:x:502:504::/home/user1:/bin/bash
#user用戶已經(jīng)添加了
除了像例 2 這樣,執(zhí)行一條命令后用戶身份會隨即自動切換回來,其他切換用戶的方式不會自動切換,只能使用 exit 命令進行手動切換,例如:
[lamp@localhost ~]$ whoami
lamp
#當前我是lamp
[lamp@localhost ~]$ su - lamp1
Password: <--輸入lamp1用戶的密碼
#切換至 lamp1 用戶的工作環(huán)境
[lamp@localhost ~]$ whoami
lamp1
#什么也不做,立即退出切換環(huán)境
[lamp1@localhost ~]$ exit
logout
[lamp@localhost ~]$ whoami
lamp
su 和 su - 的區(qū)別
注意,使用 su 命令時,有 - 和沒有 - 是完全不同的,- 選項表示在切換用戶身份的同時,連當前使用的環(huán)境變量也切換成指定用戶的。我們知道,環(huán)境變量是用來定義操作系統(tǒng)環(huán)境的,因此如果系統(tǒng)環(huán)境沒有隨用戶身份切換,很多命令無法正確執(zhí)行。
舉個例子,普通用戶 lamp 通過 su 命令切換成 root 用戶,但沒有使用 - 選項,這樣情況下,雖然看似是 root 用戶,但系統(tǒng)中的 $PATH 環(huán)境變量依然是 lamp 的(而不是 root 的),因此當前工作環(huán)境中,并不包含 /sbin、/usr/sbin等超級用戶命令的保存路徑,這就導(dǎo)致很多管理員命令根本無法使用。不僅如此,當 root 用戶接受郵件時,會發(fā)現(xiàn)收到的是 lamp 用戶的郵件,因為環(huán)境變量 $MAIL 也沒有切換。
初學(xué)者可以這樣理解它們之間的區(qū)別,即有 - 選項,切換用戶身份更徹底;反之,只切換了一部分,這會導(dǎo)致某些命令運行出現(xiàn)問題或錯誤(例如無法使用 service 命令)。
通過下面這個例子,可直觀的看到 su 和 su - 的區(qū)別:
[lamp@localhost ~]$ whoami
lamp
#查詢用戶身份,我是lamp
[lamp@localhost ~]$ su root
密碼:
<-輸入root密碼
#切換到root,但是沒有切換環(huán)境變量。注意:普通用戶切換到root需要密碼
[root@localhost ~]# env | grep lamp
#查看環(huán)境變量,提取包含lamp的行
USER=lamp
#用戶名還是lamp,而不是root
PATH=/usr/lib/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/lamp/bin
#命令査找的路徑不包含超級用戶路徑
MAIL=/var/spool/mail/lamp
PWD=/home/lamp
LOGNAME=lamp
#郵箱、主目錄、目前用戶名還是lamp
可以看到,在不使用 su - 的情況下,雖然用戶身份成功切換,但環(huán)境變量依舊用的是原用戶的,切換并不完整。
到此這篇關(guān)于linux su命令之用戶之間切換(包含su和su-的區(qū)別)案例詳解的文章就介紹到這了,更多相關(guān)linux su命令之用戶之間切換(包含su和su-的區(qū)別)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
sublime text 3特別版 for Linux v3.3176 64位(附注冊碼+安裝教程)
sublime text 3 Linux破解版是一款極其強大的代碼編輯器,又是一款可以代替記事本的文本編輯器,本次為大家?guī)砹藄ublime text 3 Linux破解版下載地址,并帶來有效的注冊碼2018-06-05壽司瀏覽器專業(yè)版(Sushi Browser pro) v0.16.6 linux版
壽司瀏覽器linux專業(yè)版是一款簡潔而功能實用且強大的新型瀏覽器。壽司瀏覽器”的概念是希望通過一個簡單的操作就能最大限度地利用屏幕2018-05-29Schrodinger Suites 2018-1 中文特別版 win/linux版(附安裝破解教程) 6
Schrodinger 2018-1是Schrodinger軟件的最新版本,能夠為生命科學(xué)和材料研究提供軟件解決方案和服務(wù)。該軟件是一個軟件合集包,由maestro、maesrto elements、materials sc2018-04-12DS SIMULIA Suite 2018 Linux64位 安裝特別版(附破解文件+破解步驟)
DS SIMULIA Suite 2018破解版是一款非常好用且功能強大的高級有限元分析軟件,是達索公示定位與真實仿真,目標是通過CAE技術(shù)協(xié)助企業(yè)加快信息化進程,評估設(shè)計方案,優(yōu)化設(shè)2018-01-29AVL Workspace Suite 2016 (發(fā)動機設(shè)計優(yōu)化分析) 破解安裝版 (附安裝教
AVL Workspace Suite 2016是AVL公司開發(fā)的一款整車及動力總成仿真分析軟件,新版本對軟件的功能進行了增強,對部分已有模塊的功能進行了擴展以滿足客戶的需求2017-11-28oasys suite(有限元分析軟件) v13.1 for linux 64位 官方免費版(附安裝
oasys suite(有限元分析軟件)是為LSDYNA開發(fā)的一款通用非線性瞬態(tài)動力分析有限元軟件,13版本為用戶提供了更多的工具和函數(shù),在建立和檢查LSDYNA模型的時候節(jié)省大量的時間2017-08-31GT-Suite v2016 B2 for win/linux 安裝特別版(附破解文件)
GT Suite 2016免費破解版是一款多功能的汽車仿真分析套裝軟件,該軟件由Gamma Technologies公司開發(fā),主要適用于車輛設(shè)計、參數(shù)分析、各種行駛情況下耗油量和噪聲的計算等2017-07-07