回答:
短い答え:
を使用してvisudo
、次をsudoersファイルに追加し、ユーザー名を適切なユーザー名に置き換えます。
username ALL = /etc/init.d/apache2
これを行う前にパスワードを入力する必要がない場合は、次を使用します。
username ALL = NOPASSWD: /etc/init.d/apache2
この後、「username」ユーザーは実行sudo /etc/init.d/apache2 start
(または停止、再起動など)できます
長い答え:まだ設定していない場合は、このために別のユーザーをセットアップし、ユーザーまたはグループが必要なコマンドを実行できるように/ etc / sudoersファイルを構成することをお勧めします。
たとえば、ユーザー 'ben'がパスワードを求めるrootプロンプトとしてすべてのコマンドを実行できるようにするには、次のようにします。
ben ALL= ALL
'ben'が1つのコマンド(たとえば、などrm
)のみを実行できるようにするには、次のようにします。
ben ALL= /bin/rm
ユーザーとしてスクリプトを実行していて、パスワードの入力を求めたくない場合は、次のように「NOPASSWD」オプションを使用します。
ben ALL=NOPASSWD: /bin/commandname options
次のように、グループ名の前にパーセント記号を付けることで、グループに対して同じことを行うことができます。
%supportstaff ALL= NOPASSWD: /bin/commandname
短い答え:sudo。
呼び出しは次のようになります。 sudo /etc/init.d/apache2 restart
最も簡単な方法はvisudo
、/ etc / sudoersファイルをセットアップすることです。man sudoers
およびman visudo
を参照してください。
これを実現するには、ラッパーをapache2ctlに書き込み、グループの所有権をWeb管理グループに割り当て、suidビットを設定します。これはvisudoよりも一般的なソリューションではありませんが、ユーザーの能力とエラーチェックのカスタム制限を許可します。
私は自分のニーズに合わせてこのツールを作成し、githubで共有しています:https : //github.com/josiahjohnston/ltd_apache2ctl
username
パラメーターのサブセットに制限できますか?言うstart
restart
が、そうではないstop
?