web-dev-qa-db-ja.com

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

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

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

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

35
itsadok

簡潔な答え:

visudoを使用して、以下をsudoersファイルに追加し、usernameを適切なユーザー名に置き換えます。

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 
84
epic9x

短い答え:須藤。

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

最も簡単なのは、visudoを使用して/ etc/sudoersファイルを設定することです。見る man sudoersおよびman visudo 詳細については。

1
Zayne S Halsall

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

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

0
JosiahJohnston