![パスワードなしでrootで固定コマンドを実行できますか? [コピー]](https://linux33.com/image/39602/%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AA%E3%81%97%E3%81%A7root%E3%81%A7%E5%9B%BA%E5%AE%9A%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
ユーザーが正しいユーザーでない場合は、パスワードやその他の認証を必要とせずに、よく定義されたコマンドをrootとして実行できるようにする sudoers でルールを定義できますか?
この問題(または非常に似た問題)を解決する他の方法はありますか?
Suid権限ビットを使用しますか?どういうわけかSSHキーを使用できますか?
答え1
sudoers
書類特定のコマンドを許可許可するには:
username ALL=(root) NOPASSWD: /bin/foo bar baz
これはusername
許可したいユーザーで、コマンドは行の末尾にあります。コマンドにパラメーターを指定すると、ユーザーはそのパラメーターでのみコマンドを実行できますが、ここでパラメーターを指定しないと、ユーザーは自分が選択したすべてのパラメーターを使用してコマンドを実行できます。複数のコマンドをカンマで区切って指定することも、別々の行で指定することもできます。
sudoers
ファイルの編集visudo
(ルートとして)この形式の行を追加して適切な詳細を変更すると、ユーザーは高い権限で指定したコマンドを実行できます。
NOPASSWD:
ユーザーはメッセージを表示せずにコマンドを実行できます。これはALL
ホストの制限なので、無視しても問題ありません(できない場合はわかります)。(root)
これは、rootとしてのみコマンドを実行できることを意味します。
ssh
あなたが要求したので、より良いですが、そうすることは完全に可能ですsudo
。COMMAND=something
行の先頭に置くことができます/root/.ssh/authorized_keys
そして、コマンドに対応するプライベートSSHキーをユーザーに提供します。考えられる唯一の理由は、sudo
ユーザーがシステムへの他のアクセスを望まない場合、またはユーザーが直接コマンドを作成したくない場合です。