欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

  發(fā)布時間:2021-09-01 14:19:19   作者:佚名   我要評論
這篇文章主要介紹了linux su命令之用戶之間切換(包含su和su-的區(qū)別)案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下

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)文章

最新評論