¿Cómo ejecutar un trabajo cron como usuario específico?

15

Tengo un par de comandos que quiero ejecutar después de que la máquina se inicie. Un usuario no debería tener que iniciar sesión ni nada para que se ejecute.

Encontré esta gran respuesta que sugiere crontab con la @rebootpalabra clave, sin embargo, esto se ejecutará como root, y me gustaría ejecutarlo como un usuario específico creado para estos "servicios" (no servicios reales del sistema).

¿Cuáles son las formas de lograr el mismo efecto con un usuario determinado?

Louis
fuente
Intente ejecutar '$ su [nombre de usuario] [comando]'
LittleByBlue

Respuestas:

24

Puede crear un crontab para el usuario específico de esta manera:

crontab -u <username> -e

O, más simplemente, podría ejecutarse crontab -ecuando inicie sesión como ese usuario.

Alternativamente, puede prefijar su comando en su crontab (root) sudo -u <username>para ejecutar el comando como el usuario especificado.

kraxor
fuente
Gracias, no pude hacerlo funcionar con esos. Pero ahora veo que puedo crear un crontab para cualquiera. Los comandos terminaron funcionando bien como root con sudo. No sabía que podía usar sudo allí (esperaba que fallara esperando una contraseña).
Louis
2
@Louis sudono requiere una contraseña cuando la invocas como root. Básicamente no estás obteniendo permisos, sino cediéndolos.
kraxor
1
@kraxor: puede ejecutar crontab -e cuando inicie sesión como ese usuario. Creo que esto no es correcto.
bhv