我使用不屬於該群組成員的普通使用者帳戶登入須藤和行政。當我運行以下範例命令時..
su -c 'sudo some_command_that_needs_sudo' sudo-user
..需要輸入密碼兩次。第一次登入sudo 用戶第二次是因為我們使用以下指令請求 root 權限須藤。
你知道如何防止再次輸入密碼嗎?
請記住..
- ..不想更改任何使用者權限
- ..只想輸入一次密碼
- ..尋找一個簡單的單一命令
答案1
你的配置有點不正常。通常,您會將您的使用者名稱新增至 sudoers,並在需要時限制可以以這種方式執行的應用程式。在不了解更多細節的情況下,我看不出引入第三個帳戶有任何好處。它只是引入了更多的間接性,這就是您現在遇到的情況。
您輸入的第一個密碼是成為 sudo 使用者。你無法避免這一點——你正在切換用戶。這裡有一些你不應該使用的瘋狂的解決方法。
- 您可以為用戶設定一個空密碼以使登入更簡單,但這將是一個瘋狂的安全風險。不要這樣做。
expect
您可以使用硬編碼密碼自動登入。這並不比之前的建議更安全。不要這樣做。- 你可以使用 ssh。您將建立一個 ssh 金鑰作為 sudo 用戶,將其複製到用戶的 .ssh 目錄,為您的用戶授予權限,將其附加到 sudouser 的 .ssh/authorized_keys,然後使用:
ssh -i .ssh/sudouser_id_rsa sudouser@localhost <command>
。它可能有效,但太瘋狂了。
visudo
透過編輯 sudoers 檔案並將 sudouser 設定為 NOPASSWD可以輕鬆刪除第二個密碼。這是比較常見的操作。您甚至可以限制不需要密碼的命令,如果您只想以這種方式運行一些命令,顯然建議您這樣做。但請注意,除非非常認真地對待這個 sudo 用戶,否則採用 NOPASSWD 策略並不是一個好主意。一般來說,無論如何這都不是一個好主意。
可以在沒有密碼提示的情況下執行所有命令的配置如下所示:
sudouser ALL= NOPASSWD: ALL
底線 - 我不明白你為什麼要使用這三個帳戶配置。將其設定為一方面,就提供您所要求的內容而言,允許 sudo 用戶運行某些命令而不提示輸入密碼是最明智的途徑。
但你必須小心 - 這會導致設定不太安全。
順便說一句,透過對 sudo 使用者使用基於 ssh 金鑰的身份驗證和 NOPASSWD,在技術上可以在您的指南中實現零身份驗證解決方案,因此您的命令如下所示:
ssh -i .ssh/sudouser_id_rsa sudouser@localhost sudo whatever_i_like
這顯然遠遠超出了不安全的程度——這只是公開的。我不需要這麼說,但也別那麼做。