intelmq
というプログラムを実行する権限を持つ というユーザーを作成しましたintelmqctl
。次に というユーザーを作成し、そのユーザーとして実行したいapache
と思います。ファイルに次の行を追加しました:apache
intelmqctl
intelmq
sudoers
Defaults:apache !requiretty
apache ALL=(intelmq) NOPASSWD: /usr/bin/intelmqctl
ただし、ユーザーとして次のコマンドを実行しようとすると、毎回apache
次の結果が返されます。
指示:sudo -u apache sudo -u intelmq /usr/bin/intelmqctl --type json stop abusech-ip-parser
出力:
Sorry, user apache is not allowed to execute '/bin/sudo -u intelmq /usr/bin/intelmqctl --type json stop abusech-ip-parser' as apache on localhost.localdomain.
CentOS 7を使用しています。
インストール時に何か失敗したのかもしれませんが、インストール時に実行した手順intelmqctl
と問題自体のより詳しい説明は次のとおりです。https://github.com/certtools/intelmq/issues/981
sudo -iu apache
として実行しようとするとroot
、ユーザーに変更されapache
、コマンド を実行するとsudo -u intelmq /usr/bin/intelmqctl
、機能し、 を実行するためのすべてのオプションが表示されますintelmqctl
。
sudo -iu apache
ただし、ユーザーとしてコマンドを実行すると、apache
次の結果が返されます。Sorry, user apache is not allowed to execute '/bin/bash' as apache on localhost.localdomain.
答え1
そのバイナリに setuid 権限を追加し、所有権を intelmq に変更できます。
chmod u+s /usr/bin/intelmqctl
chown intelmq /usr/bin/intelmqctl
その後、この実行可能ファイルを intelmq のプロセス所有権で実行できます。