Sous quel utilisateur les scripts des dossiers cron sont-ils exécutés? (c'est-à-dire cron.daily, cron.hourly, etc.)

51

Si je mets un script dans /etc/cron.daily sous CentOS, quel utilisateur sera-t-il exécuté? Est-ce qu'ils fonctionnent tous en tant que root ou en tant que propriétaire?

Kyle MacFarlane
la source

Réponses:

52

Ils courent tous comme root. Si vous avez besoin de quoi que ce soit, utilisez sudans le script ou ajoutez une entrée de crontab à la crontab ( man crontab) de l'utilisateur ou à la crontab du système (dont je ne saurais vous donner l' emplacement).

geekosaur
la source
17

Edit: ma réponse ne s'applique pas réellement dans ce cas, voir le commentaire de Zoredache ci-dessous. Désolé, tous (en particulier geekosaur). Kyle, notez que si vous souhaitez exécuter un script régulièrement en tant qu'utilisateur non root, les éléments suivants peuvent être utiles. faites-le simplement via cron.d plutôt que cron. {horaire, quotidien, hebdomadaire, mensuel}.

Je déteste contredire, mais je crains que le geekosaur n’ait pas tout à fait raison. Ils fonctionnent en tant que root sauf spécification contraire . Voici une partie du /etc/cron.d/munindossier de ma boîte CentOS :

# cron-jobs for munin
MAILTO=root
1-56/5 * * * *     munin /usr/share/munin/munin-limits --force

Notez comment, sur la ligne de fond (ligne 3), un nom d'utilisateur est spécifié avant l'exécutable. Cette entrée cron particulière fonctionne en tant qu'utilisateur munin. Si votre cron est similaire à CentOS 5 (vixie-cron-4.1-77), vous devriez pouvoir faire de même.

MadHatter soutient Monica
la source
3
Il semble parler spécifiquement de cron.daily et cron.weekly, et non de choses dans cron.d / *.
Zoredache
4
D'oh! Merci, Zoredache Je devrais lire la question plus attentivement. Pas de café pour le moment! Je le supprimerais, mais je pense que ma réponse contient encore des informations utiles - mais pas pour le PO - donc je suis plutôt enclin à le laisser rester. Qu'est-ce que tu penses? (Désolé pour avoir sauté dedans, geekosaur).
MadHatter soutient Monica
geekosaur a répondu à ma question de base, mais je n'ai jamais su à quoi sert le dossier cron.d. cron.daily, etc. sont assez évidents, de même que crontab. Mais où se situe cron.d dans tout cela?
Kyle MacFarlane Le
1
Vous avez déjà compris que l’idée d’utiliser des répertoires plutôt que des fichiers individuels pour stocker des collections simplifie l’ajout d’une entrée à un paquet: il suffit de déposer un fichier dans un répertoire au lieu d’essayer une invocation sed complexe pour éditer des morceaux. de texte dans et hors des fichiers ...
MadHatter soutient Monica
... Dans le cas de munin, il doit exécuter un travail toutes les cinq minutes, et non en tant que root. C’est un exemple parfait de la raison pour laquelle cron. {Hourly, etc} ne convient pas à tout le monde; certaines tâches cron veulent toujours pouvoir spécifier une fréquence, et peut-être un utilisateur, et pour elles, cron.d est préférable. D'autres pas, et pour eux, cron. {Hourly, etc.} est plus simple, car ils vident un script au lieu d'un script plus un wrapper de réglage du temps / utilisateur.
MadHatter soutient Monica