Apa yang bisa menyebabkan "Izin ditolak" untuk perintah `crontab -e`?

19

Inilah beberapa hasil yang saya harap sangat membantu:

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

Masalah:

Crontab tidak memiliki setguid, dan tidak termasuk dalam grup crontab.

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

Larutan:

Sebagai 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
sumber

Jawaban:

10

Apakah /usr/bin/crontabsudah ada setgidizin yang ditetapkan?

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

Jika tidak, chmod g+situ (dan jika perlu, chown sebelum itu)


Sunting: Perhatikan bahwa ini hanya berlaku untuk Vixie Cron (digunakan oleh sebagian besar distro); daemon lain (seperti dcron) dapat menggunakan izin yang berbeda ( setuid).

pengguna1686
sumber
15

Juga ada baiknya memeriksa izin di / var / spool / cron / crontab oleh

ls -al /var/spool/cron/crontabs 

Dalam kasus saya melakukan ini menunjukkan bahwa sebenarnya pengguna yang ditugaskan ke crontab adalah 'whoopsie' yang saya asumsikan berarti ada beberapa kesalahan dalam mengatur pengguna.

Melakukan ...

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

Memperbaiki ini sepenuhnya :)

Shane di atas sepeda
sumber
1
Ini bekerja untuk saya, tetapi masalahnya adalah direktori aktual / var / spool / cron / crontab tidak dapat diakses oleh pengguna, sehingga file <username> tidak dapat dibuat. Layak memeriksa yang keluar juga.
Marco
2

Periksa file /etc/cron.allow dan /etc/cron.deny. Jika file-file itu ada, pastikan nama pengguna Anda di /etc/cron.allow.

ibuys
sumber
1
Ini akan menampilkan pesan kesalahan yang berbeda - "Anda ($ USER) tidak diizinkan menggunakan program ini (crontab)"
user1686
1

Saya memiliki masalah yang sama. Saya memecahkannya dengan cara ini.

sudo crontab -u yourUser -e

Saya harap ini membantu Anda.

Rommel Samanez
sumber