
Estou trabalhando em um script python, criei um arquivo na pasta /var/log/ com 664 permissões
O script python não é capaz de gravar logs no arquivo criado, IDK porque ... já que o proprietário do arquivo é o Ubuntu (usuário padrão do AWS).
com muito cuidado, dei permissão de leitura e gravação ao arquivo
o crontab programado falhou ao executar o aplicativo devido a um problema de permissão negada. Alguma ideia?
i) o comando que você usou para configurar o crontab - crontab -e
ii) a linha crontab que está executando o script python - */30 * * * * python3 /home/ubuntu/message_initiator.py
iii) a mensagem de erro exata -Permission denied: '/var/log/ice-message-initiator.log'
Responder1
Se você correr
ll -d /var/log
Então você verá que ele pertence a root
(possivelmente como syslog
grupo) e tem 755 ou 775 permissões, o que significa que enquanto outros podem ler e percorrer o diretório, apenas root
(e possivelmente syslog
) podem modificá-lo. ice-message-initiator.log
está dentro /var/log
e enquanto ubuntu
é seu proprietário, ubuntu
não possui permissões de modificação, /var/log
o que significa que não pode modificar seu conteúdo, sejam eles arquivos ou diretórios. O erro não está ocorrendo porque o ubuntu
usuário não consegue ler o arquivo, mas porque não consegue gravar no arquivo devido a não ter permissões de modificação em seu diretório pai, /var/log
.
Para que seu cronjob funcione, você precisa executá-lo como root
ou fazer com que ele grave o arquivo de log em um subdiretório como /var/log/ice
e conceda ubuntu
permissões de modificação a ele.