
Estoy trabajando en un script de Python, creé un archivo en la carpeta /var/log/ con 664 permisos
El script de Python no puede escribir registros en el archivo creado, IDK por qué... ya que el propietario del archivo es ubuntu (usuario predeterminado de AWS).
Con mucho cuidado le he dado permiso de lectura y escritura al archivo.
El crontab programado no pudo ejecutar la aplicación debido a un problema de permiso denegado. ¿Algunas ideas?
i) el comando que utilizó para configurar el crontab - crontab -e
ii) la línea de crontab que ejecuta el script de Python - */30 * * * * python3 /home/ubuntu/message_initiator.py
iii) el mensaje de error exacto -Permission denied: '/var/log/ice-message-initiator.log'
Respuesta1
Si tu corres
ll -d /var/log
Luego verá que es propiedad de root
(posiblemente syslog
como grupo) y tiene permisos 755 o 775, lo que significa que mientras otros pueden leer y recorrer el directorio, solo root
(y posiblemente syslog
) pueden modificarlo. ice-message-initiator.log
está dentro /var/log
y mientras ubuntu
sea su propietario, ubuntu
no tiene permisos de modificación, /var/log
lo que significa que no puede modificar su contenido, ya sean archivos o directorios. El error no ocurre porque el ubuntu
usuario no puede leer el archivo, sino porque no puede escribir en el archivo debido a que no tiene permisos de modificación en su directorio principal /var/log
.
Para que su cronjob funcione, debe ejecutarlo root
o escribir el archivo de registro en un subdirectorio como /var/log/ice
y otorgarle ubuntu
permisos de modificación.