อะไรอาจทำให้“ การอนุญาตถูกปฏิเสธ” สำหรับคำสั่ง 'crontab -e`?


19

นี่คือผลลัพธ์ที่ฉันหวังว่าจะเป็นประโยชน์:

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

ปัญหา:

Crontab ไม่มี setguid และไม่ได้อยู่ในกลุ่ม crontab

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

วิธีการแก้:

ในฐานะที่เป็นราก ...

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

คำตอบ:


10

ไม่/usr/bin/crontabได้มีsetgidการตั้งค่าสิทธิ์?

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

ถ้าไม่chmod g+sมัน (และถ้าจำเป็นchown ก่อนหน้านั้น)


แก้ไข: โปรดทราบว่าสิ่งนี้ใช้ได้กับ Vixie Cron เท่านั้น (ใช้โดย distros ส่วนใหญ่); daemons อื่น ๆ (เช่นdcron) อาจใช้สิทธิ์ที่แตกต่างกัน ( setuid)


15

นอกจากนี้ยังควรตรวจสอบสิทธิ์ที่ / var / spool / cron / crontabs ด้วย

ls -al /var/spool/cron/crontabs 

ในกรณีของฉันทำสิ่งนี้แสดงให้เห็นว่าจริง ๆ แล้วผู้ใช้ที่ได้รับมอบหมายให้ crontab คือ 'whoopsie' ซึ่งฉันถือว่าหมายความว่ามีข้อผิดพลาดบางอย่างในการตั้งค่าผู้ใช้

การแสดง ...

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

แก้ไขสิ่งนี้อย่างสมบูรณ์ :)


1
สิ่งนี้ใช้งานได้สำหรับฉัน แต่ปัญหาคือไดเรกทอรี / var / spool / cron / crontabs ที่แท้จริงไม่สามารถเข้าถึงได้โดยผู้ใช้ดังนั้นไฟล์ <username> ไม่สามารถสร้างได้ คุ้มค่าที่จะตรวจสอบสิ่งนั้นด้วย
Marco

2

ตรวจสอบไฟล์ /etc/cron.allow และ /etc/cron.deny หากไฟล์เหล่านั้นมีอยู่ตรวจสอบให้แน่ใจว่าชื่อผู้ใช้ของคุณอยู่ใน /etc/cron.allow


1
นี่จะแสดงข้อความแสดงข้อผิดพลาดอื่น - "คุณ ($ USER) ไม่ได้รับอนุญาตให้ใช้โปรแกรมนี้ (crontab)"
user1686

1

ผมมีปัญหาเดียวกัน. ฉันแก้ไขมันด้วยวิธีนี้

sudo crontab -u yourUser -e

ฉันหวังว่ามันจะช่วยคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.