O proprietário não consegue gravar o arquivo de log

O proprietário não consegue gravar o arquivo de log

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 sysloggrupo) 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.logestá dentro /var/loge enquanto ubuntué seu proprietário, ubuntunão possui permissões de modificação, /var/logo que significa que não pode modificar seu conteúdo, sejam eles arquivos ou diretórios. O erro não está ocorrendo porque o ubuntuusuá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 rootou fazer com que ele grave o arquivo de log em um subdiretório como /var/log/icee conceda ubuntupermissões de modificação a ele.

informação relacionada