Linux:Apacheを再起動する許可をユーザーに与える方法は?


35

特定の条件下でApache httpdを再起動する必要があるスクリプトをroot以外のユーザーで実行しています。

ユーザーにそれを許可する最も簡単な方法は何ですか?

Ubuntu Server 8.04 LTSを使用しています。

回答:


84

短い答え:

を使用して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 

2
usernameパラメーターのサブセットに制限できますか?言うstart restartが、そうではないstop
-ThorSummoner

visudoあなたが壊れないように、コマンドは、編集上の安全性チェックを行いますsudo/ su:偶然コマンドunix.stackexchange.com/a/27595/61349
ThorSummoner

1

短い答え:sudo。

呼び出しは次のようになります。 sudo /etc/init.d/apache2 restart

最も簡単な方法はvisudo、/ etc / sudoersファイルをセットアップすることです。man sudoersおよびman visudoを参照してください。


OPは、スクリプトを介してそれを行うことについて述べました。スクリプトはパスワードを入力できないため、この答えは意味をなしません。
マットフレッチャー14

@MattFletcherは、NOPASSWD
ロビンカンターズ

0

これを実現するには、ラッパーをapache2ctlに書き込み、グループの所有権をWeb管理グループに割り当て、suidビットを設定します。これはvisudoよりも一般的なソリューションではありませんが、ユーザーの能力とエラーチェックのカスタム制限を許可します。

私は自分のニーズに合わせてこのツールを作成し、githubで共有していますhttps : //github.com/josiahjohnston/ltd_apache2ctl

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.