crontab: „Temporäre Crontab gehört nicht mehr Ihnen.“

crontab: „Temporäre Crontab gehört nicht mehr Ihnen.“

Ich bin von Linuxmint 18 Cinnamon 64bit auf Linuxmint 17.3 Cinnamon 64bit zurückgegangen und kann keinen Cron-Job mehr erstellen. Ich habe separate Root-Partitionen (/) und Home-Partitionen (/home/mein-Benutzername) und habe die Home-Partition bei der Installation von 17.3 unberührt gelassen.

Ich hatte alle möglichen Schwierigkeiten, einen Cron-Job zu erstellen, also installierte ich gnome-scheduler und versuchte, auf diese Weise einen Cron-Job zu erstellen. Ich bekam ein Warndialogfeld mit dem Titel

„Warnung: Arbeitsverzeichnis der ausgeführten Aufgaben“

und der Nachrichteninhalt ist

„Hinweis zum Arbeitsverzeichnis der ausgeführten Aufgaben: Wiederkehrende Aufgaben werden aus dem Home-Verzeichnis ausgeführt.“

Ich klicke auf „OK“ und der Job wird im Terminal wie folgt angezeigt:

$ crontab -l
* * * * * env DISPLAY=:0 /home/my-user-name/wallpaper_changer.sh >/dev/null 2>&1 # JOB_ID_4

Mein Hintergrundbild ändert sich nicht jede Minute, wie es sollte. Das Skript läuft problemlos über die Befehlszeile und erzeugt keine Ausgabe. Die Berechtigungen für das Skript sind 744 Oktal. Dies funktionierte alles unter Mint 18 einwandfrei, aber ich ließ das Skript nur einmal am Tag ausführen. Ich habe es nur zu Testzwecken so eingestellt, dass es jede Minute ausgeführt wird.

Wenn ich die normale Cron-Job-Bearbeitungsmethode versuche, erhalte ich

$ crontab -e
Temporary crontab no longer owned by you.
Error while editing crontab

Dann bekomme ich einen leeren Nano-Puffer statt der normalen Crontab-Vorlage voller kommentierter Zeilen. Wenn ich versuche, meinen Nano-Puffer in die Datei /tmp/crontab.lmuwIe/crontab zu schreiben, erhalte ich diese Fehlermeldung:

[ Fehler beim Schreiben von /tmp/lmuwIe/crontab: Zugriff verweigert ]

Endlich,

$ ls -l /usr/bin/crontab
-rwsr-xr-x 1 root crontab 35984 Feb  9  2013 /usr/bin/crontab

Kann ich jemals wieder einen Cron-Job erstellen?

$ sudo ls -la /var/spool/cron/crontabs
total 12
drwx-wx--T 2 root crontab      4096 Sep 25 03:23 .
drwxr-xr-x 5 root root         4096 Sep 23 00:05 ..
-rw------- 1 root my-user-name  188 Sep 25 03:23 my-user-name

@Gilles Nun, ich habe große Fortschritte gemacht. Ich habe alle seltsamen Fehler beseitigt, indem ich cron neu installiert habe. Jetzt funktioniert alles wie es soll, wenn ich

$ crontab -e

außerdass das Skript, das ich seit Jahren verwende, nicht läuft.

Aber es wird ein anderes Skript ausgeführt, daher bin ich verloren.

Folgendes habe ich gerade:

$ crontab -l
* * * * * env DISPLAY=:0.0 /home/my-user-name/wallpaper_changer.sh
* * * * * date >> /home/my-user-name/crontest.txt

(Ich habe die etwa 20 Kommentarzeilen, die den Cron-Jobs vorangehen, nicht einbezogen.)

Der Datumsjob läuft genau wie er soll, aber der Job wallpaper_changer.sh tut nichts. Ich habe das jahrelang verwendet und jetzt funktioniert es nicht mehr. Das Skript funktioniert von der Befehlszeile aus einwandfrei und hat früher auch von cron aus einwandfrei funktioniert.

$ ls -l /home/my-user-name/wallpaper_changer.sh
-rwxr-xr-x 1 my-user-name my-user-name 694 Jun  2 14:30 /home/my-user-name/wallpaper_changer.sh

$ echo $DISPLAY
:0.0

Was ist hier los?

Antwort1

Sie müssen die Berechtigungen für die Crontab-Binärdatei bearbeiten und sie auf den aktuellen Stand zurücksetzen, den sie bei einer Neuinstallation aufweisen.

NICHT FUNKTIONIERENDE Berechtigungen:

ls -la /usr/bin/crontab
-rwsr-xr-x 1 root crontab 40264 Oct  7  2017 /usr/bin/crontab

Aktion, führen Sie sie als Root oder mit sudo aus:

chmod g+s /usr/bin/crontab
chmod u-s /usr/bin/crontab

ARBEITSBERECHTIGUNGEN:

ls -la /usr/bin/crontab
-rwxr-sr-x 1 root crontab 40264 Oct  7  2017 /usr/bin/crontab

Die Arbeitsberechtigungen werden aus einer neuen, funktionierenden Installation übernommen und während der Installation festgelegt.

Keine Ahnung, warum sie das später geändert haben.

Antwort2

$ sudo ls -la /var/spool/cron/crontabs
total 12
drwx-wx--T 2 root crontab      4096 Sep 25 03:23 .
drwxr-xr-x 5 root root         4096 Sep 23 00:05 ..
-rw------- 1 root my-user-name  188 Sep 25 03:23 my-user-name

Der Eigentümer /var/spool/cron/crontabs/my-user-nameist falsch. Sie sollten der Eigentümer sein. Das würde erklären, warum Cron die Datei nicht überschreiben kann. Außerdem wäre die Datei normalerweise in der crontabGruppe, aber ich glaube nicht, dass das wichtig ist.

Sie können das Problem beheben, indem Sie

sudo chown my-user-name /var/spool/cron/crontabs/my-user-name

Ich weiß nicht, was die Ursache dafür sein könnte, und ich sehe nicht, wie es mit einem System-Downgrade zusammenhängen könnte. Die zugrunde liegenden Probleme könnten andere Probleme verursachen.

verwandte Informationen