Ejecutar comando como root con cron.
Rate this post

Para ejecutar un comando como root a través del cron de root o del administrador del sistema, distinto de nuestro usuario, tendremos que ponerlo en el archivo crontab del propio usuario root. No nos pedirá la contraseña para ejecutarlo.

Ejecutar un comando como root.-

Editamos el fichero cron del usuario root:

sudo crontab -e

Nos abrirá el archivo con el editor vim. Crearemos una linea debajo debajo de todas las que comienzan por almohadilla, (generalmente la última es del tipo “# m h dom mon dow command”)

El contendido de esta línea deberá tener forma tal que:

*/20 * * * * /usr/bin/who >> /home/usuario/Prueba.txt

El ejemplo anterior, detecta e imprime en Prueba.txt, el o los usuarios activos en el sistema.

El primer */20 significa la frecuencia con que se ejecutará el comando, en minutos. En este caso, cada 20 minutos.
El resto de asteriscos es igual, pero referido, sucesivamente, a horas, dias, semanas y meses. Si figura solo un *, el comando se ejecutará todos los dias, semanas, etc, según donde figure.

En el ejemplo anterior, cada 20 minutos todos las horas, dias, semanas y meses. Distinto sería que figurase simplemente un 20, lo que haría ejecutarse el comando cada minuto 20 de cada hora, dia, semana y mes.

Para finalizar la edición, pulsaremos Ctrl+O, (O de Obispo…), Enter para sobreescribir el fichero y Ctrl+X para salir. Con un reinicio de sesión tendremos los cambios realizados y funcionando.

Ejecutar un comando como usuario.-

Editamos el cron de dicho usuario:

sudo crontab -e -u tunombredeusuario

Lo anterior, claro está, ejecutado en una terminal del mismo usuario.
En caso de que queramos editar el cron de un usuario que no es el que tiene una sesión abierta en el sistema (por ejemplo, como administrador de un sistema de varios usuarios), sí que especificaremos, antes del comando propio que estemos programando en cron, el nombre del usuario que va a ejecutar dicha operación. Hay que tener en cuenta que requerirá los permisos necesarios para llevarla a cabo. En este caso, especificamos despues del horario, el usuario, y tras éste, el comando a ejecutar.

*/20 * * * * USUARIOQUEEJECUTARÁELCOMANDO /usr/bin/who >> /home/usuario/Prueba.txt

Entradas relacionadas