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
asを実行しようとするとroot
userに変更され、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のプロセス所有権を使用してこの実行可能ファイルを実行できます。