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.
📚 Inhaltsverzeichnis
👉
Cron Kapitel 1: Grundlagen von Cron & dem Task-Scheduler
👉
Cron Kapitel 2: Die Crontab verstehen – Aufbau & Syntax
👉
Cron Kapitel 3: Eigene Cronjobs erstellen – erste Automatisierungen
👉
Cron Kapitel 4: Cronjobs überwachen & Fehler finden
👉
Cron Kapitel 5: Praktische Cron-Beispiele für den Alltag
👉
Cron Kapitel 6: Sicherheit & Best Practices für Cronjobs
👉
Cron Kapitel 7: Erweiterungen – anacron & systemd timers
👉
Cron Kapitel 8: Abschlussprojekt – Dein eigenes Cron-Setup