Sudo

沒有密碼以root身份執行命令以執行固定命令?

  • July 12, 2014

是否可以在 sudoers 中定義一條規則,以允許一個使用者以 root 身份執行一個定義明確的命令,而無需密碼或其他身份驗證,除非是正確的使用者?

有沒有其他方法可以解決這個問題(或類似的問題)?

使用suid權限位?也許以某種方式使用 ssh 密鑰?

sudoers文件允許指定命令以允許:

username ALL=(root) NOPASSWD: /bin/foo bar baz

username是您要允許的使用者,該命令位於行尾。如果您為命令指定參數,則使用者只能使用這些參數執行它,但如果您未在此處指定它們,則使用者可以使用他們選擇的任何參數執行該命令。您可以指定以逗號分隔的多個命令,或者僅指定為單獨的行。

使用(以 root 身份)編輯sudoers文件並visudo以該格式添加一行,更改相應的詳細資訊,然後使用者將被允許以提升的權限完全執行您指定的命令。


NOPASSWD:允許使用者在沒有提示的情況下執行命令。這ALL是一個主機限制,您可能會忽略它(如果不能,您會知道)。(root)意味著他們只能以 root 使用者身份執行命令。


既然你問了,也可以這樣做ssh,儘管sudo更好。您可以COMMAND=something在行首輸入/root/.ssh/authorized_keys並為使用者提供與該命令對應的專用 SSH 密鑰。唯一比這更好的可能原因sudo是您不希望使用者對機器有任何其他訪問權限,或者您不希望他們必須自己編寫命令。

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