RedHat Enterprise Linux 5 にて(CentOS 5 でも同じだと思う)
sudoers に
としておいた。ここで www ユーザは apache の実行ユーザ。
このコマンド hogecmd を Webサーバの PHP スクリプトから呼び出すと、エラーになる。
その際に出力されるエラーログは次のとおり。
tty がないとダメとのこと。
仕方ないので、visudo により /etc/sudoers を編集して、下記を変更した。
これで、Webサーバからの実行ができるようになった。
sudoers に
www ALL=NOPASSWD: /path/to/hogecmd |
としておいた。ここで www ユーザは apache の実行ユーザ。
このコマンド hogecmd を Webサーバの PHP スクリプトから呼び出すと、エラーになる。
その際に出力されるエラーログは次のとおり。
Oct 19 10:58:03 host01 sudo: www : sorry, you must have a tty to run sudo ; TTY=unknown ; PWD=/www/htdocs ; USER=root ; COMMAND=/path/to/hogecmd |
tty がないとダメとのこと。
仕方ないので、visudo により /etc/sudoers を編集して、下記を変更した。
(変更前) Defaults requiretty (変更後) #Defaults requiretty |
これで、Webサーバからの実行ができるようになった。