sudoers с php-fpm shell_exec перестал работать в 18.04 - PullRequest
3 голосов
/ 30 сентября 2019

У меня есть куча серверов с одинаковой конфигурацией, и все работает безупречно, поэтому я применил то же самое на недавно установленной 18.04, но теперь, когда:

$iptables = shell_exec('sudo /sbin/iptables -t raw -L --line-numbers 2>&1');
var_dump($iptables);
exit;

Я получил:

string(54) "sudo: no tty present and no askpass program specified

Я имел обыкновение иметь / etc / sudoers с этой точной командой. Но теперь для тестирования у меня есть:

www-data ALL=NOPASSWD: ALL
Defaults:www-data !requiretty

Все тот же вывод: /. Это только сбой в php-fpm через nginx.

Если я использую "php -a" или запускаю эту команду через cli, она работает нормально, поэтому я думаю, что конфигурация system / sudoers в порядке, но все же я не могу понятьчто отличается в php-fpm.

www-data@ns368791:/root$ php -a
Interactive mode enabled

php > $iptables = shell_exec('sudo /sbin/iptables -t raw -L --line-numbers 2>&1');
php > var_dump($iptables);
string(197) "Chain PREROUTING (policy ACCEPT) ....

Моя настройка:

php --version
PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Sep  2 2019 12:54:33) ( NTS )

root@ns368791:~# uname -a
Linux ns368791 4.15.0-64-generic #73-Ubuntu SMP Thu Sep 12 13:16:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

root@ns368791:~# nginx -v
nginx version: nginx/1.16.1

Спасибо

...