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
Nick Bolton
quelle

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).

Grawity
quelle
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 :)

Shane auf dem Fahrrad
quelle
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.

ibuys
quelle
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.

Rommel Samanez
quelle