¿Se pueden usar los enlaces simbólicos en /etc/cron.d/?

22

Estoy tratando de implementar un mecanismo de configuración que permita que un determinado proyecto se implemente a través de svn una configuración cron.

Inmediatamente pensé que lo que debería hacer es establecer enlaces simbólicos desde /etc/cron.d/ al archivo cron de mi proyecto (que a su vez está controlado por un vcs), pero parece que no funciona.

Encontré algunos mensajes antiguos en el foro que hacían referencia a que los enlaces simbólicos no eran compatibles y otros dicen que sí. ¿Qué es?

¿Hay algo más o alguna otra buena manera de lograr esto?

    
pregunta Luís Faceira 28.07.2011 - 13:51

3 respuestas

25

Según man crond

  

CAVEATS

     

Todos los archivos crontab deben ser archivos regulares o enlaces simbólicos a archivos normales,          No debe ser ejecutable ni escribible para nadie más que el propietario. Esto requiere          Se puede anular el comando usando la opción -p en la línea de comandos de crond. Si ino‐          El soporte técnico está en uso, los cambios en los crontabs vinculados no son automáticamente          Notado por el demonio cron. El demonio cron debe recibir una señal SIGHUP para          recargar los crontabs. Esta es una limitación de la API inotify.

     

La salida de syslog se usará en lugar del correo, cuando no esté instalado sendmail.

También me molestó la mierda viviente. En resumen, sí, puedes usar enlaces simbólicos. Sin embargo, si no es regular files or symlinks to a regular file , debe usar -p switch.

    
respondido por el whoami 24.10.2011 - 12:10
14

Esto tiene implicaciones de seguridad. Los scripts en /etc/cron.d/ son ejecutados por root con privilegios de root. Es una mala idea crear enlaces simbólicos que sean de propiedad y de escritura para usuarios no root, ya que su sistema podría estar comprometido de esa manera

    
respondido por el Florian Heinle 28.07.2011 - 14:02
3

Revisaría la página de manual de cron para tu versión de Ubuntu (¡Supongo que estamos hablando de Ubuntu en este foro!):

  

Los archivos en este directorio deben ser propiedad de la raíz, no es necesario   ejecutable (son archivos de configuración, como / etc / crontab) y   deben cumplir con la misma convención de nomenclatura utilizada por run-parts (8): deben constar únicamente de letras mayúsculas y minúsculas, dígitos,   guiones bajos, y guiones. Esto significa que no pueden contener ningún punto.

Como señala Florian, si este archivo es de escritura para usuarios no root, es un agujero de seguridad porque los trabajos serán ejecutados por root (para quien sea nombrado como el propietario del trabajo en el archivo). También tenga en cuenta, por lo tanto, que

  

Este directorio puede contener cualquier tarea de definición de archivos siguiendo el formato utilizado en / etc / crontab, es decir, a diferencia del spool cron del usuario,   estos archivos deben proporcionar el nombre de usuario para ejecutar la tarea como en la definición de la tarea.

es decir, introduzca el nombre de usuario antes de ejecutar el comando.

    
respondido por el spume 18.02.2014 - 09:05

Lea otras preguntas en las etiquetas