Sudoersでルールを定義して、適切なユーザーであることを除いて、パスワードやその他の認証なしで、1人のユーザーが1つの明確に定義されたコマンドをrootとして実行できるようにすることは可能ですか?
これ(または非常に類似したもの)を解決するための代替手段はありますか?
Suidパーミッションビットを使用しますか?たぶん、どういうわけかsshキーを利用しますか?
sudoers
ファイル コマンドの指定を許可 許可:
username ALL=(root) NOPASSWD: /bin/foo bar baz
ここで、username
は許可するユーザーであり、コマンドは行の最後にあります。コマンドに引数を指定した場合、ユーザーはそれらの引数を使用してのみコマンドを実行できますが、ここで指定しない場合、ユーザーは選択した任意の引数を使用してコマンドを実行できます。複数のコマンドをコンマで区切って指定することも、別々の行として指定することもできます。
sudoers
ファイルを visudo
(rootとして)で編集し、適切な詳細を変更してその形式で行を追加すると、ユーザーは正確に実行できるようになります昇格された特権で指定するコマンド。
NOPASSWD:
を使用すると、ユーザーはプロンプトを表示せずにコマンドを実行できます。 ALL
はホストの制限であり、おそらく無視できます(できないかどうかはわかります)。 (root)
は、rootユーザーとしてのみコマンドを実行できることを意味します。
あなたが尋ねているので、これはssh
でも厳密に可能ですが、Sudo
の方が優れています。 COMMAND=something
の行の先頭に/root/.ssh/authorized_keys
を置き、そのコマンドに対応する専用のSSHキーをユーザーに与えることができます。 Sudo
よりも優れていると考えられる唯一の理由は、ユーザーにマシンへの他のアクセス権を持たせたくない場合、またはユーザーにコマンドを自分で書き出させたくない場合です。