Mitunter installieren Debianpakete Cronjobs in /etc/cron.*, um wiederkehrende Aufgaben auszuführen. Damit solch ein Cronjob ausgeführt wird, muss das Executable-Bit gesetzt sein. Entfernt man dieses, wird der Cronjob nicht mehr ausgeführt.
Mit dpkg-statoverride(1) kann man sich über Eigentümerschaft und Modus von Dateien hinwegsetzen und damit das Executable-Bit eines Cronjob entfernen:
dpkg-statoverride --add root root 644 /etc/cron.daily/tripwire chmod 644 /etc/cron.daily/tripwire
Der Vorteil von dpkg-statoverride(1) ist, dass die Hinwegsetzungen auch Paket-Aktualisierungen und -Neuinstallationen überdauern. Was sonst, bei durch die Paketverwaltung verwalteten Dateien, nicht der Fall ist.
Mit dpkg-statoverride --remove <path/to/file>
kann man auf diese Weise selbst gesetzte Eigentümerschaft und Modus wieder entfernen und dpkg-statoverride --list
listet alle Hinwegsetzungen auf.
PS: Ich habe dies für /etc/cron.daily/tripwire getan, da ich zwar Tripwire installiert habe, damit aber nicht das lokale System überwachen will. Sondern Tripwire nur nutze, um lokal ein anderes entferntes System zu überwachen (diesen Server/Webspace hier) und mich die lokalen Tripwire Reports stören. Wofür der Cronjob da ist.
Zur Überwachung des entfernten Systems kopiere ich mittels SSH und Rsync die Dateien und lasse dann Tripwire drüber laufen, wie im Linux Security Cookbook von O’Reilly gezeigt. Was auch gleichzeitig noch ein Backup sein kann…
Alternativ könnte man wohl auch die lokale Tripwire Policy entsprechend erweitern. Aber das will ich nicht, da mein Workflow etwas anders ist.