Problema CentOS con SELinux y cron

Iniciado por Pedro_madrid, 19 Junio 2015, 12:54 PM

0 Miembros y 1 Visitante están viendo este tema.

Pedro_madrid

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

MinusFour

Creo que tienes que cambiar el contexto al archivo en /etc/crontab.

Código (bash) [Seleccionar]

sudo chcon -t system_cron_spool_t nombredelcrontab

Pedro_madrid

Cita de: MinusFour en 19 Junio 2015, 15:06 PM
Creo que tienes que cambiar el contexto al archivo en /etc/crontab.

Código (bash) [Seleccionar]

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:
Código (bash) [Seleccionar]

[root@XXXXXX cron]# ls -Z
-rw-------. root root unconfined_u:object_r:user_cron_spool_t:s0 apache


Contexto nuevo:
Código (bash) [Seleccionar]

[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

MinusFour

Prueba a cambiar el usuario y el rol tambien:

Código (bash) [Seleccionar]

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