Isso é provável porque sudo
requer que uma sessão TTY seja executada. Você pode forçar o sudo
a assumir / usar um TTY passando os argumentos -t
, ou seja:
sudo -tt /usr/bin/rsync
Estou executando o rsync de um script php usando operadores de backtick. Está sendo executado como um usuário do apache.
Em / etc / sudoers, eu configurei
#Defaults requiretty
Cmnd_Alias REPORTS = /usr/bin/rsync
apache ALL = NOPASSWD: REPORTS
No log de erros, estou recebendo esses erros
sudo: can't stat /var/run/sudo: Permission denied
sudo: no tty present and no askpass program specified
Além disso, não que o caminho rsync esteja correto, e também o comando rsync no php. Eu posso executar o comando como root, também se eu adicionar NOPASSWD para outro usuário, eu posso sudo e executar o mesmo comando.
Desative o SELINUX (/ etc / selinux / config SELINUX = desabilitado e reinicialize).