概述
`su` 用於在目前會話中以其他使用者的權限執行命令或切換到該使用者的 shell 環境。預設情況下,如果未指定目標使用者,則會嘗試切換到 root 使用者。
主要特點
- 使用者 ID 轉換:將目前使用者的權限變更為其他使用者的權限。
- 預設目標:如果未指定使用者名稱,則預設嘗試切換到 root 使用者。
- 密碼驗證:必須正確輸入目標使用者的密碼才能進行權限轉換。
- 環境轉換:可以使用 `-` 或 `-l` 選項完全切換到目標使用者的登入 shell 環境。
主要選項
`su` 命令透過各種選項來控制使用者轉換方式和要執行的命令。
使用者轉換選項
執行命令選項
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`su` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
透過 `su` 命令的各種用法,您可以學習如何切換使用者及執行特定命令。
切換為 root 使用者(非登入 shell)
su
預設切換為 root 使用者,但不載入 root 的登入 shell 環境。目前使用者的環境變數可能會部分保留。
切換為 root 使用者(登入 shell)
su -
切換為 root 使用者,並完全載入 root 的登入 shell 環境(PATH、主目錄等)。這是最常見且推薦的方式。
切換為特定使用者(登入 shell)
su -l username
切換為指定的「username」使用者,並載入該使用者的登入 shell 環境。
以 root 權限執行特定命令後返回
su -c "ls -la /root"
以 root 權限執行 `ls -la /root` 命令後,會自動返回到原始使用者。shell 環境不會改變。
以其他使用者權限執行特定命令後返回
su username -c "whoami"
以「username」使用者的權限執行 `whoami` 命令後,返回到原始使用者。
提示與注意事項
`su` 命令直接影響系統安全性,因此在使用時需要考慮一些重要事項。
安全與建議事項
- root 密碼洩漏風險:`su` 直接要求 root 密碼,如果此密碼洩漏,整個系統可能面臨風險。`sudo` 使用者自己的密碼,並且只能授予特定命令的權限,可以進行更精細的控制。一般來說,更推薦使用 `sudo`。
- 建議使用登入 shell:建議使用 `su -`(包含連字號)來完全載入目標使用者的登入 shell 環境。這可以確保 PATH、環境變數等正確設定,防止意外問題,並與在目標使用者環境下工作效果相同。
- 避免不必要的 root 使用:完成所需操作後,應立即使用 `exit` 命令返回原始使用者,這對安全性來說更安全。長時間以 root 權限工作可能會對系統造成風險。
- 檢查日誌:`su` 的使用記錄會保存在系統日誌中(例如 `/var/log/auth.log` 或 `/var/log/secure`)。為了安全審計,建議定期檢查這些日誌。