版權所有,
引用請註明出處
su 變更使用者
su 為 super user 的縮寫,最主要的功能是讓一般使用者暫時切換為 superuser,但也可切換為其他帳號不一定是 superuser (root)。
su 命令的語法為:su [OPTIONS] [USERNAME] .如省略〝USERNAME〞預設是切換到 root 使用者。
su 命令的常用選項包括:
- -c : 執行指定的命令並返回原始使用者身份。
- -f : 不讀取登入檔案,直接切換到指定的使用者。
- -m : 保留原始使用者的環境變數。
- -s : 執行指定的 shell。
當你使用 su 命令切換到另一個使用者後,通常會發生以下環境變數的變化:
- HOME 環境變數:HOME 環境變數會更改為新使用者的家目錄。這表示你的當前工作目錄將變為新使用者的家目錄。
- USER 環境變數:USER 或 LOGNAME 環境變數會更改為新使用者的名稱。
- SHELL 環境變數:SHELL 環境變數通常保持不變,除非你使用 - 或 --login 選項來模擬完整的登入會話,這樣會使用新使用者的預設 shell。
- PATH 環境變數:PATH 環境變數可能會根據新使用者的設定而變化,因為每個使用者可以有自己的環境變數設定。這可能導致你的可執行命令搜索路徑不同於之前。
- 其他環境變數:其他特定於使用者的環境變數可能會因使用者的設定而變化,這取決於使用者的配置文件(例如〝 .bashrc〞、〝.profile 〞等)中是否有相關定義。
要注意的是,如果你使用 su 命令而不帶任何選項,則默認情況下將不會模擬完整的登入會話,因此某些環境變數可能不會變化。如果需要模擬完整的登入會話,可以使用 〝- 〞或 〝--login 〞選項,這將導致 su 命令像新使用者登入一樣,包括讀取其相關設定文件。
例:
$ su root ←變更帳號為〝root〞,沒有〝-〞選項(不會變更工作環境)
Password: ←輸入 root 的密碼
# exit ←恢復原登入者
$
$ su -c 'rm fileA' - l john ←變更使用者〝john〞,然用〝john〞身分執行指令〝rm fileA〞
|