¿Cómo puedo ejecutar los comandos sudo como un trabajo cron?

3

Estoy intentando ejecutar un script de shell como un trabajo cron. El problema es que mi script debe ejecutarse como superusuario. Lo intenté simplemente escribiendo sudo infront del comando en mi archivo crontab , pero no funcionó.

    
pregunta Lenar Hoyt 10.10.2011 - 19:12

3 respuestas

5

Cron no está en desuso de ninguna manera, pero LaunchD tiene más versatilidad y se usa, y Apple lo mantiene y da soporte activamente. Su guía de mejores prácticas es here

Los trabajos LaunchDaemon (en comparación con los LaunchAgents, que toman un ID de usuario) se ejecutan en el contexto de la raíz sin necesidad de habilitar al usuario raíz. Todo lo que se requiere es un archivo XML correctamente formado (puede copiar y pegar los existentes en / Library / LaunchDaemons, sustituyendo su script por los ProgramArguments con las claves de programación correspondientes) con la propiedad / permisos adecuados. Una reseña más antigua se puede encontrar aquí: artículo de lanzamiento en profundidad de afp548

    
respondido por el Sacrilicious 10.10.2011 - 20:48
2

Es un riesgo de seguridad, pero puede habilitar al usuario root y ejecutar el comando en el cron de root. Alternativamente, has intentado usar sudo -s para obtener un "shell de root" y hacer el cron de root de esa manera. Dependiendo del nivel de su sistema operativo, es posible que no necesite tener la raíz habilitada como usuario para que se ejecute su cron.

Si desea hacerlo sin habilitar al usuario root (lo cual no es realmente necesario en este caso), puede (como cualquier usuario administrativo) ingresar sudo crontab -u root -e para editar el crontab de root directamente.

    
respondido por el bmike 10.10.2011 - 19:30
-1

Comente "Defaults requiretty" de / etc / sudoers usando visudo.

    
respondido por el Adriano 27.10.2012 - 03:05

Lea otras preguntas en las etiquetas