shell_exec не работает - PullRequest
       4

shell_exec не работает

0 голосов
/ 14 декабря 2010

Вот моя команда:

sudo /usr/local/bin/jpegoptim --max=50 /home/someuser/public_html/reports/images/r121662.jpg

Эта команда предназначена для сжатия изображения. Я попытался запустить эту команду, используя оператор backtick и shell_exec, ни один не будет работать. Файл не сжимается.

Но эта команда запускается, когда я запускаю ее непосредственно в оболочке, зарегистрированной как someuser. Я изменил sudoers, чтобы принимать команду без пароля. Файл сжимается при запуске в оболочке.

Apache настроен для работы с suPHP, а файлы PHP также относятся к someuser. Я также сделал это, написав тестовый php-скрипт, просто сказав system(id); и запустив его в браузере. Это говорит мне о том, что скрипт действительно выполняется someuser.

Кроме того, safe_mode выключен.

РЕДАКТИРОВАТЬ : Хорошо, я получил это, чтобы вывести ошибку

sudo: sorry, you must have a tty to run sudo

Теперь, что это значит?!

Ответы [ 3 ]

1 голос
/ 14 декабря 2010

Благодаря Каталину я смог получить вывод.Он сказал sudo: sorry, you must have a tty to run sudo, что требовало отключить requiretty для someuser.Это лучшее решение, которое я получил, если есть способ отключить requiretty для одного пользователя, вызывающего одну команду, пожалуйста, дайте мне знать.

0 голосов
/ 14 декабря 2010

Попробуйте sudo -S, чтобы проверить, будет ли установка пароля для чтения пароля из стандартного ввода (даже если он не нужен) обойти тест для tty.

0 голосов
/ 14 декабря 2010

sudo обычно требует ввода с терминала (т. Е. must have a tty), поскольку он будет пытаться запросить у пользователя пароль перед тем, как позволить вам выполнить команду. Вам действительно нужно использовать sudo для запуска команды? Попробуйте удалить sudo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...