apache ユーザーが root ユーザーとして処理を実行する方法
apache
Published: 2018-09-24

目的

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 ユーザーで実行することができるようになりました。

参考