Я запускаю rsync из php-скрипта, используя операторы обратных кавычек. Он работает как пользователь apache.
В / etc / sudoers я установил
#Defaults requiretty
Cmnd_Alias REPORTS = /usr/bin/rsync
apache ALL = NOPASSWD: REPORTS
В журнале ошибок я получаю эти ошибки
sudo: can't stat /var/run/sudo: Permission denied
sudo: no tty present and no askpass program specified
Кроме того, не то, чтобы путь rsync был правильным, как и команда rsync в php. Я могу запустить команду как root, а также, если я добавлю NOPASSWD другому пользователю, я могу выполнить sudo и запустить ту же команду.
Вероятно, потому что sudo
требуется сеанс TTY для запуска. Вы можете заставить sudo
предполагать / использовать TTY, передавая -t
аргументы, то есть:
sudo -tt /usr/bin/rsync
Отключите SELINUX (/ etc / selinux / config SELINUX = disabled и перезагрузитесь).