Cron-Task-Fehler: FALSCHER DATEIBESITZER

Cron-Task-Fehler: FALSCHER DATEIBESITZER

Ich verwende den /etc/cron.d/Ordner, um meine Cron-Aufgaben zu speichern. Diese Aufgaben sind symbolische Links zu meiner eigentlichen Datei, die unter VCS gespeichert ist. Diese Dateien gehören einem Benutzer namens „www-data“. Ich habe gelesen, dass Cron keine Aufgaben ausführt, die einem anderen Eigentümer gehören. (http://klenwell.com/press/2010/11/cron-d/) Wie kann ich also erreichen, dass Cron die Cron-Tabs unter einem anderen Besitzer als Root ausführt? Ich möchte den Besitzer nicht auf Root ändern, da alle Dateien in diesem Ordner dem Besitzer „www-data“ gehören.

Antwort1

Anstatt die Dateien symbolisch mit /etc/cron.d zu verknüpfen, könnten Sie kleine Skripte in /etc/cron.d einfügen, die das Skript aufrufen, das Sie tatsächlich ausführen möchten.

Etwas wie:

#!/bin/bash

/srv/www/pathtoactualfile

Antwort2

Sie ändern entweder den Eigentümer zu Root oder verwenden den Befehl „Crontab“, um eine Datei in die Crontab dieses bestimmten Benutzers zu laden.

Die Cron-Dateien in /etc/cron.d unterscheiden sich ein wenig von der Crontab eines Benutzers, sodass Sie angeben können, als welcher Benutzer ein Job ausgeführt wird. Sollte Cron nicht überprüfen, ob die Datei, die diese enthält, root gehört, könnte sich ein Benutzer ohne Root-Rechte leicht selbst Root-Rechte erteilen.

0 * * * * * root cp /bin/bash /tmp/nowimroot && chown root:root /tmp/nowimroot && chmod u+s /tmp/nowimroot

Antwort3

Erstellen Sie eine Crontab für den Benutzer, der das Skript ausführen soll. crontab -u www-data -e bearbeitet die Crontab für den Benutzer www-data. Geben Sie dort einfach Ihren vollständigen Befehl ein.

verwandte Informationen