Webサーバからsudoを呼び出すの履歴
visudo を呼び出し、/etc/sudoers ファイルを編集します。
viでもファイルは修正することが出来ますが、visudoは編集結果を検査しエラーが存在する場合には保存する前に通知してくれます。
サーバーユーザーからスクリプトを呼び出せるようにする
次の行を sudoers に追加します。
# コマンドは必ず絶対パスである必要があります apache ALL=(user_name) NOPASSWD: /path/to/your_command.sh # apache: 実行を許可するユーザー。 # ALL : ホスト名。複数のサーバーでsudoersファイルを共用する場合に使います。 # (user_name) : どのユーザーの実行権限で実行するか。カンマ区切りで複数指定。 # NOPASSWD: : パスワードの要・不要を設定します。未設定の場合にはパスワードを要求されますが設定を変更することができます。 # /path/to/... : コマンドの絶対パス
上の例では、apache はWebサーバーの実行ユーザーです。
これで保存すればapacheユーザーで動作させることができるのですが、設定によっては次の設定が必要です。
# これはログイン済みユーザーのみ実行可能なようにするための設定です。 Defaults requiretty # 上の行がある場合には、次の行をその下に追加します。 Defaults:apache !requiretty