Was kann dazu führen, dass der Befehl "crontab -e" die Berechtigung "verweigert" hat?


19

Hier ist eine Ausgabe, von der ich hoffe, dass sie hilfreich ist:

nick@home-sv-1:~$ crontab -e
/var/spool/cron/crontabs/nick: Permission denied

nick@home-sv-1:~$ echo $EDITOR
emacs

nick@home-sv-1:~$ ls /var/spool/cron/crontabs
ls: cannot open directory /var/spool/cron/crontabs: Permission denied

nick@home-sv-1:~$ sudo ls -al /var/spool/cron/crontabs
total 12
drwx-wx--T 2 root crontab 4096 2009-10-25 20:45 .
drwxr-xr-x 3 root root    4096 2009-05-18 01:19 ..
-rw------- 1 root root     612 2009-10-25 01:20 root

Problem:

Crontab hat kein Setguid und gehört nicht zur Crontab-Gruppe.

home-sv-1:~# ls -al /usr/bin/crontab
-rwxr-xr-x 1 root root 32048 2009-08-30 03:34 /usr/bin/crontab

Lösung:

Als Wurzel ...

home-sv-1:~# chown root.crontab /usr/bin/crontab
home-sv-1:~# chmod g+s /usr/bin/crontab

home-sv-1:~# ls -al /usr/bin/crontab
-rwxr-sr-x 1 root crontab 32048 2009-08-30 03:34 /usr/bin/crontab

Antworten:


10

Hat /usr/bin/crontabder setgidBerechtigungssatz?

-rwxr-sr-x 1 root crontab 32K 2008-09-28 14:07 / usr / bin / crontab *

Wenn nicht, chmod g+ses (und wenn nötig, chown davor )


Bearbeiten: Beachten Sie, dass dies nur für Vixie Cron gilt (von den meisten Distributionen verwendet); Andere Daemons (wie dcron) verwenden möglicherweise andere Berechtigungen ( setuid).


15

Es lohnt sich auch, die Berechtigungen unter / var / spool / cron / crontabs von zu überprüfen

ls -al /var/spool/cron/crontabs 

In meinem Fall hat dies gezeigt, dass der der Crontab zugewiesene Benutzer tatsächlich "whoopsie" war. Ich gehe davon aus, dass beim Einrichten des Benutzers ein Fehler aufgetreten ist.

Performing ...

chown <username> /var/spool/cron/crontabs/<username>

Das wurde komplett behoben :)


1
Dies funktionierte für mich, aber das Problem war, dass die Benutzer nicht auf das tatsächliche Verzeichnis / var / spool / cron / crontabs zugreifen konnten, sodass die Datei <Benutzername> nicht erstellt werden konnte. Es lohnt sich auch, das zu überprüfen.
Marco

2

Suchen Sie nach einer /etc/cron.allow- und /etc/cron.deny-Datei. Wenn diese Dateien vorhanden sind, stellen Sie sicher, dass sich Ihr Benutzername in /etc/cron.allow befindet.


1
Dies würde eine andere Fehlermeldung anzeigen - "Sie ($ USER) dürfen dieses Programm (crontab) nicht verwenden"
grawity

1

Ich hatte das gleiche problem Ich habe es so gelöst.

sudo crontab -u yourUser -e

Ich hoffe es hilft dir.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.