Qu'est-ce qui pourrait provoquer une «autorisation refusée» pour la commande «crontab -e»?

19

Voici quelques résultats que j'espère utiles:

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

Problème:

Crontab n'a pas setguid et ne fait pas partie du groupe crontab.

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

Solution:

En tant que 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
la source

Réponses:

10

/usr/bin/crontabN'avoir le setgidjeu d'autorisations?

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

Sinon, chmod g+sil (et si nécessaire, chown avant cela)


Edit: Notez que cela ne s'applique qu'à Vixie Cron (utilisé par la plupart des distributions); d'autres démons (tels que dcron) peuvent utiliser des autorisations différentes ( setuid).

user1686
la source
15

Il vaut également la peine de vérifier les autorisations dans / var / spool / cron / crontabs par

ls -al /var/spool/cron/crontabs 

Dans mon cas, cela a montré que l'utilisateur assigné à la crontab était «whoopsie», ce qui, je suppose, signifie qu'il y avait une erreur dans la configuration de l'utilisateur.

Exécution ...

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

A corrigé cela complètement :)

Shane à vélo
la source
1
Cela a fonctionné pour moi, mais le problème était que le répertoire réel / var / spool / cron / crontabs n'était pas accessible aux utilisateurs, donc le fichier <username> n'a pas pu être créé. Cela vaut la peine de vérifier celui-là aussi.
Marco
2

Recherchez un fichier /etc/cron.allow et /etc/cron.deny. Si ces fichiers existent, assurez-vous que votre nom d'utilisateur se trouve dans /etc/cron.allow.

ibuys
la source
1
Cela afficherait un message d'erreur différent - "Vous ($ USER) n'êtes pas autorisé à utiliser ce programme (crontab)"
user1686
1

J'ai eu le même problème. Je l'ai résolu de cette façon.

sudo crontab -u yourUser -e

J'espère que ça t'aide.

Rommel Samanez
la source