目的
Web サーバー (apache) で php を実行すると、
実行ユーザーは apache ユーザーとなります。
処理の中で root 権限が必要な処理がありました。
方法
- abc.py
print(30)
- test.php
$a = exec('sudo -u root /usr/bin/python /var/www/html/abc.py', $d);
というように、root ユーザーでコマンドを実行できるようにします。
今のままではできないので、下記ファイルを編集します。
# vim /etc/sudoers
下記行を追加してください。
apache ALL=(root) NOPASSWD: ALL
これで root ユーザーで実行することができるようになりました。