su — 切換使用者身份

切換到另一個使用者帳號,預設切換為 root。

語法

su [選項] [使用者]

常用選項

選項 說明 範例
-(短橫線)或 -l, --login 以完整登入 Shell 切換,載入目標使用者的環境 su - root
-c 指令 以目標使用者身份執行一個指令後返回 su -c "nginx -t" www-data
-s Shell 使用指定的 Shell(而非使用者預設的 Shell) su -s /bin/bash nobody
-m, --preserve-environment 保留當前環境變數 su -m root

使用範例

範例 1:切換到 root(完整環境)

使用 - 確保完整載入 root 的環境變數(PATH、HOME 等),推薦用法。

$ su -
Password: (輸入 root 密碼)
root@server:~# 
範例 2:切換到其他使用者

切換到 www-data 使用者,常用於測試 Web 應用的執行環境。

$ su - www-data
範例 3:執行單一指令後返回

以 root 執行一個指令後自動返回原帳號,不進入互動式 Shell。

$ su -c "systemctl restart nginx" root
Password: (輸入 root 密碼)

常見錯誤與排錯

su: Authentication failure
原因
密碼輸入錯誤,或目標帳號已鎖定(如 Ubuntu 的 root)。
解法
Ubuntu 用 sudo -i 代替 su - root。其他系統確認密碼是否正確。

延伸閱讀