Linux系統中使用者切換

懷想天空2015發表於2017-05-05

1. Linux系統中使用者切換的命令為su,語法為:

su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]

引數說明

-f , –fast:不必讀啟動檔案(如 csh.cshrc 等),僅用於csh或tcsh兩種Shell。

-l , –login:加了這個引數之後,就好像是重新登陸一樣,大部分環境變數(例如HOME、SHELL和USER等)都是以該使用者(USER)為主,並

且工作目錄也會改變。如果沒有指定USER,預設情況是root。

-m, -p ,–preserve-environment:執行su時不改變環境變數。

-c command:變更賬號為USER的使用者,並執行指令(command)後再變回原來使用者。

–help 顯示說明檔案
–version 顯示版本資訊

USER:欲變更的使用者賬號,
ARG: 傳入新的Shell引數。

2. su [user] 和 su - [user]的區別:

su [user]切換到其他使用者,但是不切換環境變數,su - [user]則是完整的切換到新的使用者環境。

如:

[root@rac1 ~]# pwd  --當前目錄
/root
[root@rac1 ~]# su oracle --使用su [user]
[oracle@rac1 root]$ pwd  --當前目錄沒有改變,還是之前的使用者目錄
/root
[oracle@rac1 root]$ su - oracle --使用su - [user]
Password: 
[oracle@rac1 ~]$ pwd   --當前目錄變為當前使用者的家目錄
/home/oracle
[oracle@rac1 ~]$

所以建議大家在切換使用者時,儘量用su - [user],否則可能會出現環境變數不對的問題。

相關文章