incapaz de executar script python (selenium) gerado a partir do PHP

1

Eu tenho uma máquina Ubuntu para testes de selênio sem cabeça.

Eu gero um script python em /var/www/tmp/random123name.py via PHP e executo-os. O script funciona quando executado a partir do usuário da linha de comando, falha quando executado a partir da web (apache www-data: usuário www-data).

O script chama alguns módulos do sistema / python:

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from time import sleep, strftime
import os, json
from pyvirtualdisplay import Display

Este código retorna 1:

$python = "sudo /usr/bin/python /var/www/tmp/random123name.py";
exec($python, $output, $return);
echo "OUT<pre>".print_r($output,1)."</pre>"; #returns empty
echo "RET<pre>".print_r($return,1)."</pre>"; #returns 1

Eu modifiquei o / etc / sudoers dessa maneira, sem sorte:

www-data ALL=(ALL:ALL) NOPASSWD: /usr/bin/python

Eu também tentei

www-data ALL=(ALL:ALL) NOPASSWD: /usr/bin/python /var/www/tmp/

adicionou www-data ao grupo de discagem e algumas outras tentativas. Obrigado pelo seu apoio.

    
por fab 21.12.2015 / 23:44

2 respostas

0

Eu resolvi: não é o suficiente para voltar ao seu usuário / root, você precisa sair da sessão ssh e reabri-la para carregar tudo o que é necessário para o Visudo funcionar.

    
por 26.12.2015 / 13:34
0

Como você mesmo descobriu, as alterações em sudoers não são aplicadas a sessões em execução, apenas a novas sessões. Então você precisa fazer logout e login novamente para ver.

Mas, o que é mais importante, você não precisa de sudo para essa finalidade, e permitir que o usuário www-data execute python como root sem senha é extremamente assustador. Certamente há uma maneira de fazer seu script funcionar sem precisar de root privileges, como um usuário comum, e eu recomendo strongmente que você tente descobrir isso, em vez de recorrer a sudo para esse propósito.

    
por 29.12.2015 / 08:34