Apacheを介してroot権限を必要とするLinuxシェルスクリプトを実行しようとしていますが、Apacheのsuidおよびsudo権限を設定せずにroot権限を必要とするスクリプトを実行する方法はありますか?
コントロールパネルなどのファイルを編集しようとしています。たとえば、Pleskでは、sw-cp-serverはルートファイルを編集できます。
ベストアンサー1
問題は、どのように分割しても権限のないユーザーができる場合書くスクリプトファイルを使用すると、そのユーザーがスクリプトを変更できるため、何でもできるステートメントが開きます。ただし、必要に応じてルーティングして0700に設定できるため、これを行う必要はありません。
Apache の suid と sudo 権限を設定する代わりに
何もsuidを設定する必要はなく、Apacheがスクリプトのみを実行できるようにsudoを使用できます。 Apacheがユーザーとして実行されている場合は、httpd
以下を追加します/etc/sudoers
。
httpd ALL = NOPASSWD: /foo/bar/scripts/foobar.sh
そこからスクリプトの実際のパスを置き換えます。その後、.を使用して呼び出す必要がありますが、これはユーザーに許可されているsudo /foo/bar/scripts/foobar.sh
唯一の操作です。httpd
man 5 sudoers
詳しくはこちらをご覧ください。