Je souhaite exécuter un travail cron en tant qu'utilisateur spécifique sur ma machine. Comment puis-je spécifier l'utilisateur dans lequel un travail cron doit être exécuté?.
Les tâches cron seront exécutées sur un serveur (fonctionnant sous Ubuntu 10.0.4). Les «utilisateurs» sont des utilisateurs créés spécifiquement pour effectuer des tâches spécifiques côté serveur. Ces "utilisateurs" ont en commun:
- Impossible de se connecter au système
- Avoir un accès restreint à des dossiers / fichiers spécifiques
crontab -u <user> -e
garder au même endroit, ce que vous pouvez faire en tant que root. J'aime grouper mes tâches cron par fonction, cependant, plutôt que par utilisateur, c'est donc la solution préférable pour moi.En tant que root, pour éditer le cron de user1:
Vous pouvez également démarrer votre commande avec:
Mais souvent, les scripts eux-mêmes réduisent leur propre accès lorsqu'ils sont démarrés en tant que root.
la source
Je cherche cela depuis quelques semaines et cela a finalement fonctionné ...
Créez votre script en tant qu'utilisateur1
entrer une commande
le rendre exécutable
éditer la crontab pour user1
mettre une ligne en bas pointant vers votre (vos) script (s)
exit - sauvegarde des modifications (il affichera un répertoire / tmp lors de la sauvegarde ... tout va bien)
attendez le tour de la minute
ouvrez votre nouveau yay.txt
vous devriez maintenant avoir une nano-fenêtre ouverte avec "YAY ça marche" comme première et unique ligne si le bas de votre nano-fenêtre indique New File ... eh bien ... je ne sais pas
vous pouvez également vérifier votre entrée récemment crontab pour user1 à l’adresse: / var / spool / cron / crontabs / user1
PAIX
la source
Parfois, vous voudrez peut-être que l'utilisateur charge son environnement, surtout s'il utilise "rbenv", "nvm", comme ceci:
(ici la commande
source ~/.bash_profile
chargera votre environnement Ruby ou Node.la source