Was sind die Laufzeitberechtigungen eines Cron-Jobs?

14

Wenn ein Cron-Job ausgeführt wird, mit welchen Berechtigungen wird er ausgeführt?

Da bin ich mir nicht sicher. Ist es mit den gleichen Rechten des Benutzers, der es über hinzugefügt hat crontab -e?

Jim
quelle
Msgstr "Ist es mit den gleichen Berechtigungen des Benutzers ausgestattet, der es über crontab - e hinzugefügt hat?" Ja. Oder technisch der Benutzer, in dessen Crontab es ist.
Kevin

Antworten:

17

Sie können einen Benutzer in den crontab-Systemeinträgen wie folgt angeben:

# 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

Das sechste Argument kann ein Benutzername sein. Zusätzlich können Sie Skripte in das /etc/cron.dVerzeichnis einfügen . Die Skripte haben dieselbe Form wie die oben beschriebenen crontab-Einträge, zum Beispiel:

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

Sie können Skripte in diese Verzeichnisse einfügen, sie sollen jedoch als root ausgeführt werden:

  • cron.daily
  • cron.hourly
  • cron.weekly
  • cron.monatlich

Schließlich können Sie benutzerbasierte crontab-Einträge erstellen, indem Sie diesen Befehl als einen bestimmten Benutzer ausführen:

$ crontab -e

Diese Einträge werden in Dateien mit demselben Namen wie der Benutzer in diesem Verzeichnis gespeichert /var/spool/cron/:

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

Ja , aber Jobs , die manuell in die Systeme crontab (edit / etc / crontab) mit absoluter Berechtigungen werden laufen hinzugefügt werden (dh: laufen als root) , wenn Sie einen anderen Benutzer angeben.

Haneefmubarak
quelle
Wie würden Sie einen Benutzer ohne Rootberechtigung angeben?
Jim
1
Verwenden Sie crontab -e einfach wie gewohnt als normaler Benutzer und es wird als dieser Benutzer ausgeführt. :)
Haneefmubarak
Oder geben Sie einfach den Parameter 'Benutzername' an cronjob
Kamafeather 10.02.15