Я не знаком с zenity или shell-exec, поэтому, возможно, допустил глупую ошибку ...
Следующая командная строка работает в окне терминала Ubuntu;
PASSWD="$(zenity --password --title=Authentication)"; echo -e $PASSWD | sudo -S nmap -A 192.168.0.1-255;
Он выводит диалоговое окно с графическим интерфейсом для запроса пароля, а затем nmap запускается правильно.
Если я поместил следующий код в php-файл на моей локальной машине, обслуживаемыйApache:
$network = '192.168.0.1-255';
$cmd = 'PASSWD="$(zenity --password --title=Authentication)"; echo -e $PASSWD | sudo -S nmap -A ' . $network;
echo $cmd;
$output3 = rtrim(shell_exec($cmd));
echo ($output3);
, затем $ cmd выводится как
PASSWD="$(zenity --password --title=Authentication)"; echo -e $PASSWD | sudo -S nmap -A 192.168.0.1-255
, но больше ничего не происходит.
Я смотрел на run zenity от php и попытался сначала ввести эту команду из терминала:
xhost local:www-data
, но это не помогло.
Запуск, например, "ls" из shell_exec работает нормально.
Буду рад любым предложениям.