[RHEL] non-root user เมื่อใช้คำสั่ง crontab เจอ Permission denied !!!

น้องในทีมที่ 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.