Sudo

執行 sudo 命令,在同一行指定密碼

  • February 16, 2021

我想做這樣的事情:

sudo -p password rm /a/file

我可以將密碼和使用者放在同一行嗎?

我的 Sudo 版本是1.8.9p5

sudo沒有指定密碼的選項,但您仍然可以在命令行上進行身份驗證,如下所示:

echo password | sudo -u root --stdin

要不就

echo password | sudo -S

參考sudo 手冊頁

-S, 將提示寫入標準錯誤並從標準輸入讀取密碼,而不是使用終端設備。密碼後面必須跟一個換行符。--stdin

-uuser, user 作為預設目標使用者以外的使用者(通常是 root)執行命令。使用者可以是使用者名或以“#”字元為前綴的數字使用者 ID (UID)(例如,#0 表示 UID 0)。當作為 UID 執行命令時,許多 shell 要求使用反斜杠 (’') 對“#”進行轉義。某些安全策略可能會將 UID 限制為密碼數據庫中列出的那些。只要未設置 targetpw 選項,sudoers 策略就允許密碼數據庫中沒有的 UID。其他安全策略可能不支持這一點。--user=

但是sudo已經開發了很長時間。檢查版本:

-V, 列印版本字元串以及安全策略外掛和任何 I/O 外掛的版本字元串。如果呼叫使用者已經是根使用者,則該選項將顯示在建構時傳遞給配置的參數,並且外掛可能會顯示更詳細的資訊,例如預設選項。--version
sudo``-V``sudo

2013年增加了對長選項的支持。

除了進行身份驗證之外,您還需sudo要做一些事情,例如命令。我經常檢查它是否正在工作

sudo id

這應該顯示root使用者,例如,

uid=0(root) gid=0(root) groups=0(root)

引用自:https://unix.stackexchange.com/questions/275505