Webサーバからsudoを呼び出すの履歴

visudo を呼び出し、/etc/sudoers ファイルを編集します。

viでもファイルは修正することが出来ますが、visudoは編集結果を検査しエラーが存在する場合には保存する前に通知してくれます。

サーバーユーザーからスクリプトを呼び出せるようにする


次の行を sudoers に追加します。

# コマンドは必ず絶対パスである必要があります
apache  ALL=(wwwdev) NOPASSWD: /path/to/your_command.sh

# apache: 実行を許可するユーザー。
# ALL   : ホスト名。複数のサーバーでsudoersファイルを共用する場合に使います。
# (wwwdev) : どのユーザーの実行権限で実行するか。カンマ区切りで複数指定。
# NOPASSWD: : パスワードの要・不要を設定します。未設定の場合にはパスワードを要求されますが設定を変更することができます。
# /path/to/... : コマンドの絶対パス


上の例では、apache はWebサーバーの実行ユーザーです。

これで保存すればapacheユーザーで動作させることができるのですが、設定によっては次の設定が必要です。

# これはログイン済みユーザーのみ実行可能なようにするための設定です。
Defaults    requiretty
# 上の行がある場合には、次の行をその下に追加します。
Defaults:apache !requiretty


どこに詳細な説明書がありますか?


man sudoers で説明書を参照できます。日本語で書いてあるのでとてもわかりやすいです。