正在尋找更好的解決方案來使用普通用戶帳戶執行單一 sudo 命令?

正在尋找更好的解決方案來使用普通用戶帳戶執行單一 sudo 命令?

我使用不屬於該群組成員的普通使用者帳戶登入須藤行政。當我運行以下範例命令時..

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

這顯然遠遠超出了不安全的程度——這只是公開的。我不需要這麼說,但也別那麼做。

相關內容