くまきち

山と旅と家族が大事。
でも激しい物欲が理性と財布のタガを飛ばす
最近は自転車も乗ってる

Web サーバから sudo でコマンド実行しようとするとエラー

2009-10-19 11:36:56 | 雑記
 RedHat Enterprise Linux 5 にて(CentOS 5 でも同じだと思う)

 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サーバからの実行ができるようになった。