Wenn Sie den Zugriff auf das Skript ausreichend gesichert und sinnvolle Vorsichtsmaßnahmen getroffen haben, ist es normalerweise kein Sicherheitsrisiko, etwas von Roots Crontab aus auszuführen.
Führen Sie jedoch kein Skript als Root aus, das ein Nicht-Root-Benutzer bearbeiten oder überschreiben kann. Dies gilt sowohl für Jobs, die von cron als auch interaktiv ausgeführt werden.
Wenn dieses Skript andere Dateien enthält, gilt dies auch für diese.
Verwenden Sie im Zweifelsfall immer das Prinzip des geringsten Privilegs. Wenn Sie sich immer noch nicht sicher sind, können Sie jederzeit spezifische Fragen in Foren und im IRC stellen.
Es gibt (fast) immer eine Möglichkeit, etwas als Nicht-Root-Benutzer auszuführen. Wenn alles andere nicht mit sudo funktioniert, um einen Benutzer auf bestimmte Befehle zu beschränken, wird auch das Schadenspotential begrenzt.
In dem Beispiel, das Sie für das Sichern von / etc / apache2 / sites-available angegeben haben, ist diese Datei standardmäßig für jedermann lesbar, was bedeutet, dass der Zugriff auf das Ziel nur von root beschreibbar ist.
Sie könnten das durch beheben
- Erstellen Sie eine Gruppe namens backupadmins (zum Beispiel).
- Setzen Sie die Gruppe im Zielverzeichnis auf backupadmins
- Fügen Sie einen Benutzer namens backupuser hinzu (zum Beispiel).
- Fügen Sie den Benutzer backupuser zur Gruppe backupadmins hinzu.
- Machen Sie das Verzeichnis für die Gruppe backupadmins beschreibbar
- Führen Sie den Cron-Job über die Crontab des Sicherungsbenutzers aus.
Es hängt davon ab, was die Skripte tun. Wenn sie Daten sichern, ist es wahrscheinlich in Ordnung, dass sie root sind. Wenn ein böswilliger Benutzer diese Skripte überschreibt, haben Sie wahrscheinlich sowieso größere Probleme.
Wenn sie dumme Dinge tun, wie das Ausführen von Dateien in Verzeichnissen oder irgendetwas, das durch den Inhalt der Webverzeichnisse beeinflusst werden könnte, müssen Sie wahrscheinlich nach Alternativen suchen.
quelle
Millionen von Cron-Jobs auf der ganzen Welt werden jeden Tag als Root ausgeführt (oder in welchem Zeitraum auch immer).
Wichtig ist, dass die richtigen Berechtigungen festgelegt werden. Wenn Sie etwas ausführen, das von jedem geschrieben werden kann, kann ein böswilliger Benutzer oder Prozess die Funktionsweise ändern.
Cron-Jobs werden im Allgemeinen vom Eigentümer der Crontab ausgeführt. Ein Benutzer crontab könnte sich
/var/spool/cron/crontabs/username
beispielsweise in befinden. Cronjobs , die in sind/etc/crontab
,/etc/cron.d/
oder/etc/cron.hourly
(täglich, wöchentlich, monatlich) wird von root ausgeführt werden. Es ist wichtig, dass der Besitz und die Berechtigungen auch für diese Crontab-Dateien korrekt sind.quelle