web-dev-qa-db-ja.com

ユーザーがsudoで使用できるコマンドをホワイトリストに登録する

ユーザーがシステムで実行できるコマンドのホワイトリストを設定しようとしています。私が使用しているサーバーはCentOS7を実行しています。特定のグループのコマンドと引数のみをユーザーのSudoとして実行できるようにするために使用する必要がある構文は何ですか?また、これらのコマンドを呼び出すときにSudoがパスワードを必要としないようにしたいと思います。

私はもう試した:

  1. ユーザーALL =/bin/cmd1 arg1 arg2、/ bin/cmd2 arg1 arg2、/ bin/cmd3 arg1 arg2 NOPASSWD:ALL

  2. ユーザーALL =(ユーザー:グループ)/ bin/cmd1 arg1 arg2、/ bin/cmd2 arg1 arg2、/ bin/cmd3 arg1 arg2 NOPASSWD:ALL

  3. ユーザーALL =(ユーザー)/ bin/cmd1 arg1 arg2、/ bin/cmd2 arg1 arg2、/ bin/cmd3 arg1 arg2 NOPASSWD:ALL

  4. ユーザーALL =(/ bin/cmd1 arg1 arg2、/ bin/cmd2 arg1 arg2、/ bin/cmd3 arg1 arg2)NOPASSWD:ALL

これらすべての試みにより、/ etc/sudoersファイルで構文エラーが発生しました。

私はこの質問を見てきました: Sudoユーザーが特定のコマンドを実行しないようにする方法は? そしてこのガイドも読んでください: https://www.digitalocean.com/community/tutorials/how -to-edit-the-sudoers-file-on-ubuntu-and-centos 。質問は最初の試みがうまくいくはずだったことを示しているようですが、ガイドは2番目の試みがうまくいったはずだと示しているようです。では、何が機能するのでしょうか?

3
edrw

次のようなものを追加してみてください。

user ALL = (root) NOPASSWD: /bin/cmd1 args, /bin/cmd2 args

上記の行:

  • userは、コマンドへのアクセスが必要なユーザーです
  • / bin/cmd1 args、/ bin/cmd2argsはコマンドです
  • rootは、コマンドが実行されるユーザーです。
2
cristi