Cron ist mächtig – aber mit großer Macht kommt auch Verantwortung.
Ein falsch konfigurierter Job kann dein System lahmlegen, zu Datenverlust führen oder Sicherheitslücken öffnen.
In diesem Kapitel lernst du, wie du Cron sicher und zuverlässig nutzt.
🔹 Benutzerrechte und Sicherheit
Benutzer-Crontabs
- Jeder Benutzer kann nur seine eigenen Jobs verwalten (
crontab -e
). - Cronjobs laufen mit den Rechten des jeweiligen Benutzers.
- Vorteil: Ein normaler Benutzer kann keine systemkritischen Befehle starten.
Root-Crontab
root
kann systemweite Jobs anlegen.- Root-Jobs sind sehr mächtig – aber auch riskant.
- Fehlerhafte Befehle können das gesamte System betreffen.
👉 Best Practice: Verwende Root nur, wenn unbedingt nötig.
🔹 Schutz vor Fehlern
- Absolute Pfade verwenden
Cron nutzt eine minimale Umgebung. Gib daher immer den vollständigen Pfad an:/usr/bin/rsync /bin/rm
- Ausgaben in Logdateien umleiten
So stellst du sicher, dass Fehler sichtbar werden:0 2 * * * /usr/bin/rsync -a /home/user/ /backup/ >> /var/log/backup.log 2>&1
- Jobs testen, bevor sie produktiv laufen
– Erst im Terminal ausführen
– Dann als Cronjob mit kurzem Intervall testen.
– Schließlich auf den gewünschten Zeitplan stellen.
🔹 Cron und sensible Daten
Cron eignet sich gut für Routinejobs.
Aber: Nicht alles gehört in Cron.
- Lang laufende Prozesse → besser mit
systemd
-Services. - Hochkomplexe Automatisierungen → besser über Skripte mit Fehlerhandling.
👉 Cron ist optimal für kurze, wiederkehrende Tasks wie Backups, Monitoring, Aufräumarbeiten.
🔹 Zugriff auf Cron einschränken
Auf vielen Systemen kannst du festlegen, wer Cron überhaupt benutzen darf.
/etc/cron.allow
→ Nur Benutzer in dieser Datei dürfen Cron nutzen./etc/cron.deny
→ Benutzer in dieser Datei dürfen Cron nicht nutzen.
Beispiel: Nur user1
und user2
sollen Cronjobs anlegen dürfen:
echo "user1" | sudo tee /etc/cron.allow echo "user2" | sudo tee -a /etc/cron.allow
👉 Damit verhinderst du, dass unerfahrene Benutzer unkontrollierte Jobs einrichten.
🔹 Typische Sicherheitsfehler vermeiden
❌ rm -rf /
in einem Cronjob → kompletter Datenverlust.
❌ Befehle ohne Pfadangabe (rm
statt /bin/rm
).
❌ Jobs mit Root-Rechten aus Bequemlichkeit.
❌ Keine Logs oder Fehlerprüfung → Probleme bleiben unbemerkt.
✅ Stattdessen:
- Pfade angeben.
- Logs nutzen.
- Klein anfangen, dann erweitern.
🔹 Übung
- Lege einen Cronjob an, der jede Stunde die CPU-Auslastung in
/var/log/cpu_check.log
schreibt. Verwende dabei absolute Pfade. - Erstelle eine Datei
/etc/cron.allow
, in der nur dein Benutzer steht. Teste, ob ein anderer Benutzer Cronjobs anlegen darf. - Versuche einen Job mit absichtlich falschem Pfad – sieh dir an, wie der Fehler ins Log geschrieben wird.
✅ Zusammenfassung
- Verwende Cron nur mit den nötigen Rechten – Root-Jobs nur, wenn unvermeidbar.
- Nutze absolute Pfade und leite Ausgaben in Logs um.
- Vermeide Passwörter in Crontabs → besser Konfigurationsdateien nutzen.
- Einschränkungen über
cron.allow
/cron.deny
erhöhen die Sicherheit. - Cron ist für regelmäßige, kurze Aufgaben ideal – nicht für komplexe Dauerprozesse.
👉 Im nächsten Kapitel werfen wir einen Blick auf Erweiterungen zu Cron – nämlich anacron (Jobs nachholen, wenn der Rechner aus war) und systemd timers als moderne Alternative.