切換使用者身份命令 su 的使用方法詳解

2021-10-06 23:49:03 字數 2245 閱讀 1068

su 命令可以切換成不同的使用者身份,命令格式如下:

[root@localhost ~]

# su [選項] 使用者名稱

選項說明-

選項只使用「-」代表連帶使用者的環境變數一起切換

-c 命令

僅執行一次命令,而不切換使用者身份

「-」不能省略,它代表切換使用者身份時,使用者的環境變數也要切換成新使用者的環境變數。大家知道環境變數是用來定義使用者的操作環境的,如果環境變數沒有隨使用者身份切換,那麼很多操作將無法正確執行。比如put使用者lamp切換成超級使用者,但是沒有加入「-」,那麼雖然是root使用者,但是pat

h環境變

量還是l

amp用

戶的,不

包含/s

bin、

/usr

/sbi

n等超級

使用者命令

儲存路勁

,所以無

法使用管

理員命令

;而且r

oot用

戶在接收

郵件時,

還會發現

收到的l

amp用

戶的郵件

,因為環

境變

量path環境變數還是lamp使用者的,不包含/sbin、/usr/sbin等超級使用者命令儲存路勁,所以無法使用管理員命令;而且root使用者在接收郵件時,還會發現收到的lamp使用者的郵件,因為環境變數

path環境

變數還是

lamp

使用者的,

不包含/

sbin

、/us

r/sb

in等超

級使用者命

令儲存路

勁,所以

無法使用

管理員命

令;而且

root

使用者在接

收郵件時

,還會發

現收到的

lamp

使用者的郵

件,因為

環境變數

mail沒有切換過來。

[lamp@localhost ~]$ whoami

lamp

#查詢使用者身份,我是lamp

[lamp@localhost ~]$ su root

password:

#切換到root,但是沒有切換環境變數。注意:普通使用者切換到root需要root密碼

[root@localhost lamp]

# env | grep lamp

#查詢環境變數,提取包含lamp的行

user

=lamp

#使用者名稱還是lamp,而不是root

path

=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/lamp/.local/bin:/home/lamp/bin

#命令查詢的路勁不包含超級使用者路勁

mail

=/var/spool/mail/lamp

pwd=/home/lamp

logname

=lamp

#郵箱、家目錄、目前使用者名稱還是lamp

通過上面的例子我們已經注意到,切換使用者時如果沒有加入「-」,那麼切換是不完全的,要想完全切換,可以使用如下命令:

[lamp@localhost ~]$ su - root

password:

#「-」代表連帶環境變數一起切換,不能省略

有些系統命令只有root可以執行,比如新增使用者的命令useradd,所以我們需要使用root身份執行。但是我們只想執行一次,而不想切換身份,可以做到嗎?當然可以,命令如下:

[lamp@localhost ~]$ whoami

lamp

#當前使用者為lamp

[lamp@localhost ~]$ su - root -c "useradd user1"

password:

#不切換成root,但是執行useradd命令新增user1使用者

[lamp@localhost ~]$ whoami

lamp

#當前使用者還是lamp

[lamp@localhost ~]$ grep

"user1" /etc/passwd

user1:x:1001:1001::/home/user1:/bin/bash

#user1使用者已經新增了

linux 切換使用者命令su

su命令來切換使用者,su是switch user切換使用者的縮寫。可以是從普通使用者切換到root使用者,也可以是從root使用者切換到普通使用者。從普通使用者切換到root使用者需要輸入密碼,從root使用者切換到普通使用者不需要輸入密碼。命令格式 su 引數 使用者名稱 使用者名稱的預設值為r...

linux命令 su切換使用者

檢視當前使用者 iduid 0 root gid 0 root 組 0 root whoami root 切換到另乙個賬戶下 su dennywang echo path usr local sbin usr local bin sbin bin usr sbin usr bin root bin ...

su 命令切換使用者帶來的問題

1 使用者目錄 home oracle許可權問題 2 su程式執行許可權問題 3 程式依賴的共享庫許可權問題 4 selinux問題導致 5 系統根空間問題 使用者家目錄許可權為700,這是正常情況下使用者家目錄的許可權值。檢視su命令的許可權,屬主屬組其他均有讀和執行許可權,屬主更是有可讀可寫可執...