Sudo
沒有密碼以root身份執行命令以執行固定命令?
是否可以在 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
是您不希望使用者對機器有任何其他訪問權限,或者您不希望他們必須自己編寫命令。