web-dev-qa-db-ja.com

固定コマンドのrootとしてコマンドを実行するためのパスワードがありませんか?

Sudoersでルールを定義して、適切なユーザーであることを除いて、パスワードやその他の認証なしで、1人のユーザーが1つの明確に定義されたコマンドをrootとして実行できるようにすることは可能ですか?

これ(または非常に類似したもの)を解決するための代替手段はありますか?

Suidパーミッションビットを使用しますか?たぶん、どういうわけかsshキーを利用しますか?

6
Volker Siegel

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よりも優れていると考えられる唯一の理由は、ユーザーにマシンへの他のアクセス権を持たせたくない場合、またはユーザーにコマンドを自分で書き出させたくない場合です。

9
Michael Homer