Ich versuche, einen Cron-Job unter meinem Benutzer einzurichten. Ich führe crontab -e aus, nehme meine Änderungen vor und versuche zu speichern und zu beenden. Ich erhalte die folgende Fehlermeldung /var/spool/cron/: mkstemp: Permission denied
.
Relevante Ausgabe von ls -al /var/spool/cron/crontabs
drwxr-xr-x 2 root crontab 4096 Nov 4 10:09 .
drwxr-xr-x 5 root root 4096 Nov 19 2014 ..
-rw-rw-rw- 1 greg crontab 91 Nov 4 11:04 greg
-rw------- 1 root crontab 1231 Oct 29 16:18 root
Ich kann die Greg-Datei direkt bearbeiten und speichern, aber ich kann den Job trotzdem nicht ausführen, selbst wenn ich Cron nach der Aktualisierung neu starte. Was muss ich tun, um dieses Problem zu beheben?
Die Ausgabe von ls -lha $(which crontab)
ist:
-rwxr-sr-x 1 root crontab 36K Feb 8 2013 /usr/bin/crontab
Die Ausgabe von groups greg
ist:
greg : greg adm sudo crontab lpadmin sambashare
Antwort1
Dadurch wird Ihr unmittelbares Problem behoben:
chmod u=rwx,g=wx,o=t /var/spool/cron/crontabs
Wenn Sie jedoch Pakete herunterladen können, können Sie das Problem zuverlässiger beheben, indem Sie apt-get
das entsprechende Paket neu installieren:
root@ubuntu# dpkg-query -S /var/spool/cron/crontabs
cron: /var/spool/cron/crontabs
root@ubuntu# apt-get install --reinstall cron
nachdem Sie zunächst sichergestellt haben, dass alle lokalen Änderungen, die Sie an /etc/init/cron.conf
, /etc/default/cron
usw. vorgenommen haben, irgendwohin kopiert und dann erneut angewendet wurden.
Antwort2
Die von Mark Plotnick erwähnte Lösung hat bei mir nicht funktioniert. Nachdem ich meinen Benutzer jedoch zur crontab
Gruppe hinzugefügt hatte, funktionierte es:
sudo adduser myname crontab
Sie müssen sich ab- und erneut anmelden, damit diese Änderung übernommen wird.
Antwort3
In Ubuntu 22.04:
crontab ~/admin/scripts/crontab.txt
/var/spool/cron/: mkstemp: Zugriff verweigert
$ ls -lha $(which crontab)
-rwxr-sr-x 1 root crontab 39K 23. März 2022 /usr/bin/crontab
~$ ls -lha /var/spool/cron/crontabs
ls: Verzeichnis „/var/spool/cron/crontabs“ kann nicht geöffnet werden: Berechtigung verweigert
~$ sudo ls -lha /var/spool/cron/crontabs
insgesamt 8.0K
drwx-wx--T 2 root systemd-journal 4.0K 2. März 2023 .
drwxr-xr-x 3 root root 4.0K 22. Juli 09:48 ..
Wir benötigen also zwei Gruppen für die Benutzerausführung, um Berechtigungen zu erhalten:
sudo usermod -a -G systemd-journal <user>
sudo usermod -a -G systemd-journal <user>
Abmelden und erneut mit Benutzer ... anmelden.
crontab ~/admin/scripts/crontab.txt
crontab -l
0 */1 * * * ~/admin/scripts/elasticsearch_flush.sh > /dev/null 2>&1