Co może spowodować „Odmowa zezwolenia” na komendę „crontab -e”?

19

Oto kilka wyników, które mam nadzieję są pomocne:

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 nie ma setguid i nie należy do grupy crontab.

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

Rozwiązanie:

Jako root ...

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
źródło

Odpowiedzi:

10

Czy /usr/bin/crontabmasz setgidustawione pozwolenie?

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

Jeśli nie, chmod g+sto (a jeśli to konieczne, chown wcześniej )


Edycja: Zauważ, że dotyczy to tylko Vixie Cron (używanego przez większość dystrybucji); inne demony (takie jak dcron) mogą korzystać z różnych uprawnień ( setuid).

użytkownik1686
źródło
15

Warto również sprawdzić uprawnienia w / var / spool / cron / crontabs przez

ls -al /var/spool/cron/crontabs 

W moim przypadku zrobienie tego pokazało, że faktycznie użytkownik przypisany do crontab to „whoopsie”, co, jak zakładam, oznacza błąd w konfiguracji użytkownika.

Działający...

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

Naprawiono to całkowicie :)

Shane na rowerze
źródło
1
Działa to dla mnie, ale problem polegał na tym, że rzeczywisty katalog / var / spool / cron / crontabs był niedostępny dla użytkowników, więc nie można utworzyć pliku <nazwa użytkownika>. Warto też to sprawdzić.
Marco
2

Sprawdź plik /etc/cron.allow i /etc/cron.deny. Jeśli te pliki istnieją, upewnij się, że nazwa użytkownika to /etc/cron.allow.

ibuys
źródło
1
To pokazuje inny komunikat o błędzie - „Ty ($ USER) nie możesz korzystać z tego programu (crontab)”
użytkownik1686,
1

Miałem ten sam problem. Rozwiązałem to w ten sposób.

sudo crontab -u yourUser -e

Mam nadzieję, że Ci to pomoże.

Rommel Samanez
źródło