Eu tive esse problema executando o RKHunter no meu servidor. Faça o login como SU e faça Crontab -e você ainda pode apontar para a pasta users, mas ele será executado com privilégios por lá.
Eu uso o LetsEncrypt no meu servidor para renovar certificados HTTPS. Se eu fizer login manualmente no meu servidor e executar
$ sudo /opt/certbot-auto renew --nginx --quiet --no-self-upgrade
então minha atualização de certificados e tudo é ótimo.
Eu queria fazer isso como um cronjob diário, então eu fiz:
$ sudo crontab -e
e adicionou as linhas:
# try to renew "at 00:00 on Every Day of the Week"
0 0 * * 1-7 /opt/certbot-auto renew --nginx --quiet --no-self-upgrade >> /var/log/le-renew.log
... no entanto, isso não está funcionando. Eu verifiquei o conteúdo de le-renew.log
e encontrei o seguinte, repetido várias vezes:
All renewal attempts failed. The following certs could not be renewed:
/etc/letsencrypt/live/<domain>/fullchain.pem (failure)
/etc/letsencrypt/live/<domain>-0001/fullchain.pem (failure)
/etc/letsencrypt/live/www.<domain>/fullchain.pem (failure)
All renewal attempts failed. The following certs could not be renewed:
/etc/letsencrypt/live/<domain>/fullchain.pem (failure)
/etc/letsencrypt/live/<domain>-0001/fullchain.pem (failure)
/etc/letsencrypt/live/www.<domain>/fullchain.pem (failure)
Para mim, isso parece para indicar que a tarefa do cron não está sendo executada como sudo - se eu não adicionar o sudo ao invocar manualmente o comando (primeiro bloco de código neste post), então Renovar falhar.
Estou fazendo algo errado aqui? Como posso garantir que a tarefa do cron seja executada com permissões de root? Alguma dica sobre como posso depurar esse problema? Como eu disse, o comando é executado como esperado quando eu manualmente SSH e invoco-o com sudo
, mas parece não funcionar direito quando adicionado como um cronjob diário.
Eu tive esse problema executando o RKHunter no meu servidor. Faça o login como SU e faça Crontab -e você ainda pode apontar para a pasta users, mas ele será executado com privilégios por lá.