ボタンのある 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
で、すべてがうまくいきます。ありがとうございます。