web-dev-qa-db-fra.com

Comment exécuter un travail cron en tant qu'utilisateur spécifique?

J'ai quelques commandes à exécuter après le démarrage de la machine. Un utilisateur ne devrait pas avoir à se connecter ni à quoi que ce soit pour s'exécuter.

J'ai trouvé cette excellente réponse suggérant crontab avec le mot clé @reboot. Toutefois, celui-ci s'exécutera en tant que root et j'aimerais s'exécuter en tant qu'utilisateur spécifique créé pour ces "services" (pas les services système réels).

Quels sont les moyens d'atteindre ce même effet avec un utilisateur donné?

12
Louis

Vous pouvez créer une crontab pour un utilisateur spécifique, comme ceci:

crontab -u <username> -e

Ou plus simplement, vous pouvez simplement exécuter crontab -e lorsque vous êtes connecté en tant que cet utilisateur.

Vous pouvez également préfixer votre commande dans votre crontab (racine) avec Sudo -u <username> pour exécuter la commande en tant qu'utilisateur spécifié.

18
kraxor