Buenos días,
En primer lugar decir que soy novato en el mundo de Linux/GNU, por lo que agradecería comprensión.
Tengo un servidor con CentOS y SELinux habilitado el cual me da un problema a la hora de ejecutar un script desde cron. El cron es llamado desde el usuario apache y la línea es la siguiente:
10 * * * * /bin/sh /opt/backup.sh
En el log del cron me da la siguiente línea:
crond[2948]: ((null)) Unauthorized SELinux context=system_u:system_r:system_cronjob_t:s0-s0:c0.c1023 file_context=unconfined_u:object_r:etc_t:s0 (/etc/crontab)
¿Cómo puedo autorizar esa línea del cron para que ejecute el script sin que SELinux me arroje el error?
Muchas gracias,
Un saludo
Creo que tienes que cambiar el contexto al archivo en /etc/crontab.
sudo chcon -t system_cron_spool_t nombredelcrontab
Cita de: MinusFour en 19 Junio 2015, 15:06 PM
Creo que tienes que cambiar el contexto al archivo en /etc/crontab.
sudo chcon -t system_cron_spool_t nombredelcrontab
Buenos días,
Tiene toda la pinta de ser algo relacionado con el contexto del archivo, como bien has dicho. Sin embargo tras cambiar el contexto del cron de apache sigue sin funcionar.
Contexto antiguo:
[root@XXXXXX cron]# ls -Z
-rw-------. root root unconfined_u:object_r:user_cron_spool_t:s0 apache
Contexto nuevo:
[root@XXXXXX cron]# ls -Z
-rw-------. root root unconfined_u:object_r:system_cron_spool_t:s0 apache
También intenté cambiarle el contexto a system_cronjob_t (que es uno de los que menciona el error), pero me da error de permisos.
¿Alguna idea?
Muchas gracias,
Un saludo
Prueba a cambiar el usuario y el rol tambien:
sudo chcon -u system_u -r system_r -t system_cron_spool_t nombredecrontab
system_cronjob_t es el contexto bajo el cual el proceso de cron esta corriendo y los archivos con los que interactuan deben estar bajo el contexto de system_cron_spool_t según:
https://wiki.gentoo.org/wiki/SELinux/cron