Root以外のユーザーでスクリプトを実行していますが、特定の条件下で、Apache httpdを再起動する必要があります。
ユーザーにそれを許可する最も簡単な方法は何ですか?
Ubuntu Server 8.04 LTSを使用しています。
簡潔な答え:
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
短い答え:須藤。
呼び出しは次のようになります。Sudo /etc/init.d/Apache2 restart
最も簡単なのは、visudo
を使用して/ etc/sudoersファイルを設定することです。見る man sudoers
およびman visudo
詳細については。
Apache2ctlにラッパーを書き込み、グループの所有権をWeb管理グループに割り当て、suidビットを設定することによっても、これを実現できます。これはvisudoよりも一般的ではありませんが、ユーザーの能力やエラーチェックに関するカスタム制限を可能にします。
私は自分のニーズに合わせてこのツールを作成し、それをgithubで共有しました: https://github.com/josiahjohnston/ltd_Apache2ctl