Cosa potrebbe causare "Autorizzazione negata" per il comando `crontab -e`?


19

Ecco alcuni output che spero siano utili:

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

Problema:

Crontab non ha setguid e non fa parte del gruppo crontab.

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

Soluzione:

Come 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

Risposte:


10

Non /usr/bin/crontabavere il setgidset di autorizzazioni?

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

In caso contrario, chmod g+s(e se necessario, chown prima di quello)


Modifica: Nota che questo vale solo per Vixie Cron (usato dalla maggior parte delle distro); altri daemon (come dcron) possono usare permessi diversi ( setuid).


15

Inoltre vale la pena controllare i permessi su / var / spool / cron / crontabs di

ls -al /var/spool/cron/crontabs 

Nel mio caso, ciò ha mostrato che l'utente assegnato al crontab era "whoopsie" che presumo significhi che si è verificato un errore durante l'impostazione dell'utente.

Esecuzione di ...

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

Risolto completamente :)


1
Questo ha funzionato per me, ma il problema era che la directory / var / spool / cron / crontabs era inaccessibile agli utenti, quindi non è stato possibile creare il file <username>. Vale la pena controllare anche quello.
Marco

2

Cerca un file /etc/cron.allow e /etc/cron.deny. Se tali file esistono, assicurati che il tuo nome utente sia in /etc/cron.allow.


1
Ciò mostrerebbe un diverso messaggio di errore - "Tu ($ USER) non sei autorizzato a utilizzare questo programma (crontab)"
user1686

1

Ho avuto lo stesso problema. L'ho risolto in questo modo.

sudo crontab -u yourUser -e

Spero che ti aiuti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.