Jakie są uprawnienia środowiska wykonawczego zadania cron?

15

Kiedy zadanie cron działa z jakim uprawnieniem, wykonuje?

Nie jestem co do tego pewien. Czy ma takie same uprawnienia, jak użytkownik, który go dodał crontab -e?

Jim
źródło
„Czy ma takie same uprawnienia jak użytkownik, który dodał go przez crontab -e?” Tak. Lub technicznie użytkownik, w którym znajduje się crontab.
Kevin

Odpowiedzi:

18

Możesz określić użytkownika we wpisach crontab systemowych w następujący sposób:

# 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

Szósty argument może być nazwą użytkownika. Dodatkowo możesz umieścić skrypty w /etc/cron.dkatalogu. Skrypty mają taką samą formę jak opisane powyżej wpisy crontab, na przykład:

# /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

Możesz umieścić skrypty w tych katalogach, ale mają one być uruchamiane jako root:

  • cron.daily
  • cron.hourly
  • cron. co tydzień
  • cron.monthly

Na koniec możesz tworzyć wpisy crontab oparte na użytkownikach, uruchamiając to polecenie jako dany użytkownik:

$ crontab -e

Te wpisy są przechowywane w plikach o tej samej nazwie co użytkownik w tym katalogu /var/spool/cron/:

$ sudo ls -l /var/spool/cron/
-rw------- 1 saml root 0 Jun  6 06:43 saml
slm
źródło
4

Tak , jednak zadania dodawane ręcznie do crontab systemu (edycja / etc / crontab) będą uruchamiane z bezwzględnymi uprawnieniami (tj.: Jako root), chyba że podasz innego użytkownika.

HananeMubarak
źródło
Jak określiłbyś użytkownika innego niż root?
Jim
1
Po prostu użyj crontab -e normalnie jako zwykły użytkownik, a będzie on uruchamiany jako ten użytkownik. :)
haneefmubarak
Lub po prostu określ parametr „nazwa użytkownika” cronjob
Kamafeather