■リモートからsudoで実行
リモートからsudoで実行 apache経由でコマンドを実行できない場合の対応方法 ■エラーメッセージ sudo: no tty present and no askpass program specified ■ リモートされる側のサーバで、以下のコマンドを実行して設定ファイルを編集すれば リモートからsudo出来るようになる。 これでファイル編集する % sudo visudo ■変更前 #Defaults env_reset ↓ ■変更後 Defaults visiblepw 補足 sudo visudo は /etc/sudoers に存在する設定ファイルを編集する専用のエディタ。 vimで編集するとsudo権限がなくなったまま、設定がおかしくなる可能性があるため ファイルを直接編集ではなく、visudo を使用すること ■シェル指定するばi apache-user-name ALL=(ALL) NOPASSWD: /home/test.sh 書式説明 ・apache-user-name : 付与権限が与えられるユーザ名(www-dataとかhttpdとか)。これはグループ名でもOK。 ・ALL=(ALL) : 最初のALLはWhereのことでホスト名かIPアドレス。sudoersをどのホストからでも共有する場合はALL。2番目のALLはAs_Whom 指定しなければrootになる ・NOPASSWD: 起動させたいコマンドを書く。これをALLにする場合は注意が必要