非ルートユーザーとしてrspamd.serviceを再起動します

非ルートユーザーとしてrspamd.serviceを再起動します

ボタンのある Web ページがあり、ユーザーがボタンをクリックすると、restart.shサーバー上のスクリプトが実行されます。このスクリプトには次の内容が含まれています。

#!/bin/bash
systemctl restart rspamd.service

ボタンをクリックすると、restart.shが実行されますが、rspamd.service は再起動されません。「rspamd.service の再起動に失敗しました: アクセスが拒否されました」スクリプトは Web ページ上のボタンのクリックによって実行されるため、サーバー上でスクリプトを実行する実際のユーザーは ですwww-data。 スクリプトを root として実行するために suid ビットを設定しようとしましたが、機能しません。www-dataユーザーとして rspamd.service を再起動するにはどうすればよいですか?

答え1

解決方法須藤以前試してみましたが、順番が間違っていました。編集sudo ユーザこれをvisudoファイルの末尾に追加します:

www-data ALL = NOPASSWD: /bin/systemctl restart rspamd.service

そうすれば、ただ走るだけsudo systemctl restart rspamd.serviceで、すべてがうまくいきます。ありがとうございます。

関連情報