(Ubuntuサーバーで)実行するためにSU権限が必要なPythonファイルがあります。
方法がわかりません。
次のように PHP から実行します。
$command = "python /path/to/my/file.py params";
$temp = exec($command, $output);
var_dump($output);
動作していません。(非 root では Xvfb の起動に失敗します)
試した:
$command = "echo 'root_pwd' | sudo -S python /program.py params"
...
うまくいきませんでした。
試した: /etc/sudoers を編集:
Cmnd_Alias BUNDLE = /path/to/myprog.py
nobody ALL=(ALL) NOPASSWD:BUNDLE
その後:
$command = "sudo -u nobody python myprog.py params";
...
うまくいきませんでした。
「うまくいかなかった」と言うとき - つまり、var_dump($output) が空の配列を返し、サーバー上で成功した結果が得られない (myprog.py はサーバー上でファイルを生成する必要があります)、またはページが数分間読み込まれるまで単純に読み込まれることを意味します。タイムアウトします。
基本的な .py ファイル (特別な権限を必要としない) は機能します。
助けてください。
PS: .Py ファイルは URL のスクリーンショットを作成しているため、webkitgtk、Xvfb などを使用しています。