Quelles sont les autorisations d'exécution d'un travail cron?

15

Lorsqu'un travail cron s'exécute avec quels privilèges s'exécute-t-il?

Je ne suis pas sûre de ça. Est-ce avec les mêmes privilèges que l'utilisateur qui l'a ajouté via crontab -e?

Jim
la source
"Est-ce avec les mêmes privilèges que l'utilisateur qui l'a ajouté via crontab -e?" Oui. Ou techniquement l'utilisateur dont il se trouve dans la crontab.
Kevin

Réponses:

18

Vous pouvez spécifier un utilisateur dans les entrées crontab du système comme ceci:

# For details see man 4 crontabs

# Example of job definition:
.---------------- minute (0 - 59)
|  .------------- hour (0 - 23)
|  |  .---------- day of month (1 - 31)
|  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
|  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
|  |  |  |  |
*  *  *  *  * user-name  command to be executed

Le 6ème argument peut être un nom d'utilisateur. De plus, vous pouvez mettre des scripts dans le /etc/cron.drépertoire. Les scripts prennent la même forme que les entrées crontab décrites ci-dessus, par exemple:

# /etc/cron.d/clamav-update
## Adjust this line...
MAILTO=root

## It is ok to execute it as root; freshclam drops privileges and becomes
## user 'clamav' as soon as possible
0  */3 * * * root /usr/share/clamav/freshclam-sleep

Vous pouvez placer des scripts dans ces répertoires, mais ils doivent être exécutés en tant que root:

  • cron.daily
  • cron.hourly
  • cron.weekly
  • cron.monthly

Enfin, vous pouvez créer des entrées crontab basées sur l'utilisateur en exécutant cette commande en tant qu'utilisateur donné:

$ crontab -e

Ces entrées sont stockées dans des fichiers portant le même nom que l'utilisateur dans ce répertoire /var/spool/cron/,:

$ sudo ls -l /var/spool/cron/
-rw------- 1 saml root 0 Jun  6 06:43 saml
slm
la source
4

Oui , cependant, les travaux qui sont ajoutés manuellement à la crontab du système (modifier / etc / crontab) seront exécutés avec des autorisations absolues (c'est-à-dire: exécuter en tant que root) sauf si vous spécifiez un autre utilisateur.

haneefmubarak
la source
Comment spécifieriez-vous un utilisateur non root?
Jim
1
Utilisez simplement crontab -e normalement en tant qu'utilisateur normal et il sera exécuté en tant qu'utilisateur. :)
haneefmubarak
Ou spécifiez simplement le paramètre 'user-name' cronjob
Kamafeather