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
#命令查詢的路勁不包含超級使用者路勁
=/var/spool/mail/lamp
pwd=/home/lamp
logname
=lamp
#郵箱、家目錄、目前使用者名稱還是lamp
有些系統命令只有root可以執行,比如新增使用者的命令useradd,所以我們需要使用root身份執行。但是我們只想執行一次,而不想切換身份,可以做到嗎?當然可以,命令如下:[lamp@localhost ~]$ su - root
password:
#「-」代表連帶環境變數一起切換,不能省略
[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命令的許可權,屬主屬組其他均有讀和執行許可權,屬主更是有可讀可寫可執...