権限のないユーザーに、apachectlスクリプトを実行する権限を付与する必要があります。

権限のないユーザーに、apachectlスクリプトを実行する権限を付与する必要があります。

一般ユーザーがシステムでapachectlを実行できることを願っています。これが彼らが通常の権限の外でできる唯一のことです。私がしたことは、sudoersファイルの一番下に次の行を追加したことです。

sampleuser ALL=(root)      NOEXEC:/usr/sbin/apachectl

そのため、ユーザーexampleuserでapachectlコマンドを実行しましたが、次のエラーが発生しました。

$ sudo apachectl stop 
[sudo] password for sampleuser: 
/usr/sbin/apachectl: line 105: /usr/sbin/httpd: Permission denied

apachectlスクリプトはその実行可能ファイルを呼び出すので、/ usr / sbin / httpdコマンドを介して権限を取得したようです。だからsudoersファイルに別の行を追加しました。

sampleuser ALL=(root)      NOEXEC:/usr/sbin/httpd

これで同じコマンドを実行しましたが、同じエラーが発生しました。

sudo apachectl start
[sudo] password for sampleuser: 
/usr/sbin/apachectl: line 105: /usr/sbin/httpd: Permission denied

今私の質問は、apachectlスクリプトファイルなどを編集せずに、私が望むものより簡単にできるソリューションがあるかどうかです。

ありがとうございます。

ベストアンサー1

Apachectlはhttpdを実行するためにsudoを使用する必要があることを知りません。

次のようにしてみてください。

APACHE_HTTPD='sudo -E /usr/sbin/httpd' sudo -E /usr/sbin/apachectl start

-E, --preserve-env
             Indicates to the security policy that the user wishes to reserve their
             existing environment variables.  The security policy may eturn an error
             if the user does not have permission to preserve the environment.

したがって、apache2ctlはhttpdを呼び出すために別のコマンドを使用するように強制します。

おすすめ記事