สิทธิ์รันไทม์ของงาน cron คืออะไร?


15

เมื่องาน cron ทำงานด้วยสิทธิพิเศษอะไรบ้างที่ทำงาน?

ฉันไม่แน่ใจเกี่ยวกับเรื่องนี้ มันมีสิทธิ์ใช้งานแบบเดียวกันกับผู้ใช้ที่เพิ่มเข้าไปcrontab -eหรือไม่?


"มีสิทธิ์แบบเดียวกันกับผู้ใช้ที่เพิ่มผ่าน crontab -e หรือไม่" ใช่. หรือผู้ใช้ทางเทคนิคซึ่งเป็น crontab มัน
เควิน

คำตอบ:


18

คุณสามารถระบุผู้ใช้ในรายการระบบ crontab ดังนี้:

# For details see man 4 crontabs

# Example of job definition:
.---------------- minute (0 - 59)
|  .------------- hour (0 - 23)
|  |  .---------- day of month (1 - 31)
|  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
|  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
|  |  |  |  |
*  *  *  *  * user-name  command to be executed

อาร์กิวเมนต์ที่ 6 สามารถเป็นชื่อผู้ใช้ นอกจากนี้คุณสามารถใส่สคริปต์ใน/etc/cron.dไดเรกทอรี สคริปต์ใช้รูปแบบเดียวกับรายการ crontab ที่อธิบายข้างต้นตัวอย่างเช่น:

# /etc/cron.d/clamav-update
## Adjust this line...
MAILTO=root

## It is ok to execute it as root; freshclam drops privileges and becomes
## user 'clamav' as soon as possible
0  */3 * * * root /usr/share/clamav/freshclam-sleep

คุณสามารถใส่สคริปต์ในไดเรกทอรีเหล่านี้ แต่มันจะถูกเรียกใช้เป็นรูท:

  • cron.daily
  • cron.hourly
  • cron.weekly
  • cron.monthly

ในที่สุดคุณสามารถสร้างรายการ crontab ของผู้ใช้โดยการเรียกใช้คำสั่งนี้เป็นผู้ใช้ที่กำหนด:

$ crontab -e

รายการเหล่านี้ถูกเก็บไว้ในไฟล์ที่มีชื่อเดียวกับผู้ใช้ในไดเรกทอรีนี้/var/spool/cron/:

$ sudo ls -l /var/spool/cron/
-rw------- 1 saml root 0 Jun  6 06:43 saml

4

ใช่อย่างไรก็ตามงานที่ถูกเพิ่มเข้าไปในระบบ crontab ด้วยตนเอง (แก้ไข / etc / crontab) จะถูกรันด้วยสิทธิ์แบบสัมบูรณ์ (เช่น: run as root) เว้นแต่คุณจะระบุผู้ใช้รายอื่น


คุณจะระบุผู้ใช้ที่ไม่ใช่รูทได้อย่างไร?
Jim

1
เพียงใช้ crontab -e ตามปกติในฐานะผู้ใช้ปกติและจะถูกเรียกใช้ในฐานะผู้ใช้รายนั้น :)
haneefmubarak

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