Unter welchem ​​Benutzer werden Skripte in den Cron-Ordnern ausgeführt? (zB cron.daily, cron.hourly, etc)

51

Unter CentOS wird ein Skript unter /etc/cron.daily als welcher Benutzer ausgeführt? Laufen sie alle als root oder als Eigentümer?

Kyle MacFarlane
quelle

Antworten:

52

Sie laufen alle als root. Wenn Sie etwas anderes benötigen, verwenden Sie sudas Skript, oder fügen Sie einen crontab-Eintrag zur crontab ( man crontab) des Benutzers oder zur systemweiten crontab (deren Position ich Ihnen unter CentOS nicht mitteilen konnte) hinzu.

Geekosaurier
quelle
17

Bearbeiten: Meine Antwort trifft in diesem Fall nicht zu. Siehe Zoredaches Kommentar weiter unten. Entschuldigung, alle (va Geekosaurier). Kyle, beachten Sie, dass Folgendes hilfreich sein kann, wenn Sie ein Skript regelmäßig als Benutzer ohne Rootberechtigung ausführen möchten. Mach es einfach über cron.d und nicht über cron. {stündlich, täglich, wöchentlich, monatlich}.

Ich hasse es zu widersprechen, aber ich befürchte, dass Geekosaurier nicht ganz richtig sind. Sie werden als root ausgeführt, sofern nicht anders angegeben . Hier ist ein Teil der /etc/cron.d/muninDatei meiner CentOS-Box :

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

Beachten Sie, dass in der eigentlichen Zeile (Zeile 3) vor der ausführbaren Datei ein Benutzername angegeben ist. Dieser bestimmte Cron-Eintrag wird als Benutzer munin ausgeführt. Vorausgesetzt, Ihr Cron ähnelt CentOS 5 (vixie-cron-4.1-77), sollten Sie in der Lage sein, dies ebenfalls zu tun.

MadHatter
quelle
3
Er scheint speziell über cron.daily und cron.weekly zu sprechen und nicht über die Dinge in cron.d / *.
Zoredache
4
D'oh! Danke, Zoredache; Ich sollte die Frage genauer lesen. Noch kein Kaffee! Ich würde es löschen, aber ich denke, meine Antwort enthält immer noch nützliche Informationen - nur nicht für das OP - also bin ich eher geneigt, sie stehen zu lassen. Was denkst du? (Entschuldigung für das falsche Hineinspringen, Geekosaurier).
MadHatter
geekosaur hat meine grundlegende Frage beantwortet, aber ich habe nie gewusst, wofür der Ordner cron.d eigentlich ist. cron.daily usw. sind ziemlich offensichtlich, ebenso wie crontab. Aber wo sitzt cron.d in allem?
Kyle MacFarlane
1
Sie haben bereits begriffen, dass die Idee, Verzeichnisse anstelle einzelner Dateien zum Speichern von Sammlungen zu verwenden, darin besteht, dass ein Paket leichter einen Eintrag hinzufügen kann: Legen Sie einfach eine Datei in einem Verzeichnis ab, anstatt einen komplexen sed-Aufruf zum Bearbeiten von Chunks auszuführen von Text in und aus Dateien ...
MadHatter
... Im Fall von Munin muss der Job alle fünf Minuten ausgeführt werden und nicht als Root. Das ist ein perfektes Beispiel dafür, warum cron. {Hourly, etc.} Nicht für alle geeignet ist. Einige Cron-Jobs möchten immer noch eine Frequenz und möglicherweise einen Benutzer angeben können, und für sie ist cron.d besser. Andere tun dies nicht, und für sie ist cron. {Hourly, etc.} Einfacher, da sie nur ein Skript anstelle eines Skripts plus eines Timing- / Benutzereinstellungs-Wrappers ausgeben.
MadHatter