sudo 命令構建器
產生用於以其他使用者身分執行指令的 sudo 指令
開始使用 sudo
## 什麼是 sudo?
`sudo` 可以以其他使用者(預設為 root)的安全權限來執行單一指令。它透過 sudoers 方針進行授權,且通常會要求您輸入自己的密碼,而非目標使用者的密碼。
## 使用方式
1. **選擇使用者/群組**(可選):使用 `-u` / `-g` 來以非 root 使用者身分執行指令。 2. **選擇旗標**:加入 `-n`(非互動模式)、`-b`(背景執行)、`-E`(保留環境變數)等。 3. **輸入指令**:輸入要執行的指令(即位置參數)。 4. **複製並執行**:將生成的指令複製到您的終端機中執行。
常見選項
### `-u` 以使用者身分執行 以指定的使用者而非 root 來執行指令,例如 `-u postgres`。
### `-g` 以群組身分執行 以指定的群組作為主要群組來執行指令。
### `-n` 非互動模式 不會提示輸入密碼;若需要密碼則會立即失敗。適用於指令碼與 cron 任務。
### `-b` 在背景執行 在背景中執行指令,不會佔用終端機。
### `-S` 從標準輸入讀取密碼 從標準輸入而非終端機讀取密碼——適用於管道傳輸。
### `-H` 設定 HOME 將 `$HOME` 變數設定為目標使用者的家目錄。
### `-E` 保留環境 保留呼叫者的環境變數。僅在 sudoers 政策允許時才可行。
### `-s` Shell 以目標使用者身分執行 Shell(預設為 root)。
### `-e` 編輯 使用安全的編輯器,以目標使用者身分編輯一個或多個檔案。
### 指令參數 位置參數即是在 sudo 下要執行的指令(連同其選項)。
▶我要如何以非 root 的其他使用者身分執行指令?
使用 \`-u\`:\`sudo -u postgres psql -l\` 會以 postgres 使用者身分執行 psql。
▶如何在腳本中以非互動方式執行指令?
請使用 \`-n\`,如此在需要密碼時就不會出現提示或失敗:\`sudo -n systemctl restart nginx\`。為了讓作業能自動執行,請在 sudoers 中設定 NOPASSWD。
▶在使用 sudo 時,要如何保留我的環境變數?
加入 \`-E\`:\`sudo -E env\`。sudoers 的政策仍可能限制可保留的變數種類。
▶我要如何在背景中執行長指令?
使用 \`-b\`:\`sudo -b yum update\` 會將更新分離出來,讓您的終端保持空閒。
如果这个工具对你有帮助,请考虑请我喝杯咖啡。
請幫我買杯咖啡吧。