น้องในทีมที่ Implement Server อยู่ๆ เจอปัญหา พอใช้ User ที่ไม่มีสิทธิ root เข้าไปแก้ไข crontab พบว่าเจอ Error Permission denied
[invsdbbkp@invsdevfile01 ~]$ crontab -l /var/spool/cron/invsdbbkp: Permission denied
ไม่ว่าจะเป็น crontab -e หรือ crontab -l ก็เจอปัญหาครับ ตอนนี้ต้องมาไล่ดูสาเหตุกันครับ
ไล่ดูสาเหตุกันครับ
- ลองตรวจสอบ Permission ใน
/var/spool/cron/
ด้วยคำสั่งls -al /var/spool/cron/
[root@invsdevfile01 ~]# ls -al /var/spool/cron/ total 4 drwx------. 2 root root 35 Apr 23 18:47 . drwxr-xr-x. 10 root root 109 Dec 30 00:37 .. -rw-------. 1 invsdbbkp staff 0 Apr 23 18:47 invsdbbkp -rw-------. 1 root root 187 Apr 23 15:30 root
- สิทธิของไฟล์ crontab ก็ถูกต้องตาม user นี่หว่า เคสนี้แสดงว่าสิทธิของไฟล์ crontab ไม่ได้ผิด แต่ต้องไปดูอีกจุดนึงครับ
/usr/bin/crontab
ที่เก็บตัว executable ของ crontab ครับ ด้วยคำสั่งll /usr/bin/crontab
[root@invsdevfile01 ~]# ll /usr/bin/crontab -rwxr-xr-x. 1 root root 77648 Jun 12 2019 /usr/bin/crontab
- พอลองเอาสืทธิไปเทียบเครื่องอื่นพบว่า Setuid หายไปครับ (SUID bit was removed from
crontab
)
แก้ไขปัญหากันครับ
- สิทธิที่ถูกต้องของ
/usr/bin/crontab
ต้องเป็น4755
ซึ่งสามารถแก้ไข โดยใช้คำสั่งchmod 4755 /usr/bin/crontab
[root@invsdevfile01 ~]# chmod 4755 /usr/bin/crontab
- ตรวจสอบผลลัพธ์ หลังแก้ไขสิทธิครับ
[root@invsdevfile01 ~]# ll /usr/bin/crontab -rwsr-xr-x. 1 root root 77648 Jun 12 2019 /usr/bin/crontab
- จากนั้นทดสอบใช่ crontab -e และ crontab -l ด้วย non-root user ครับ
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.