Estoy tratando de ejecutar un script de shell como un cron job. El problema es que mi script debe ejecutarse como super usuario. He probado con solo escribir sudo
delante del comando en mi crontab
archivo, pero no funcionó.
Respuestas
¿Demasiados anuncios?Cron no es en modo alguno en desuso, pero LaunchD tiene más versatilidad y se utiliza, y activamente mantenido y con el soporte de Apple. Su guía de mejores prácticas es aquí
LaunchDaemon empleos(frente a LaunchAgents, que toman una identificación de usuarios) en la root del contexto sin necesidad de activar el usuario root. Todo lo que se requiere es un bien formada archivo XML(puede simplemente copiar-pegar pre-existentes en /Library/LaunchDaemons, sustituyendo su guión para la ProgramArguments con la correspondiente programación de teclas) con la debida propiedad/permisos. Una mayor valoración crítica se puede encontrar aquí: afp548 del launchd-artículo en profundidad
Es un riesgo de seguridad, pero se puede habilitar el usuario root y ejecute el siguiente comando en la root del cron. Alternativamente, ¿has probado a utilizar sudo -s
para obtener una "shell root" y haciendo que la root del cron de esa manera. Dependiendo de su nivel de sistema operativo, es posible que no necesite root habilitado como usuario para que el cron para que se ejecute.
Si quieres hacerlo sin habilitar el usuario root (que no es realmente necesario en este caso), es posible que, como cualquier usuario administrativo) escriba sudo crontab -u root -e
a editar el crontab de root directamente.