Các quyền thời gian chạy của một công việc cron là gì?


15

Khi một công việc định kỳ chạy với đặc quyền nào thì nó thực thi?

Tôi không chắc về điều đó. Có phải nó có cùng đặc quyền của người dùng đã thêm nó thông qua crontab -e?


"Có phải nó có cùng đặc quyền của người dùng đã thêm nó thông qua crontab -e?" Đúng. Hoặc về mặt kỹ thuật, người dùng có crontab.
Kevin

Câu trả lời:


18

Bạn có thể chỉ định người dùng trong các mục crontab của hệ thống như vậy:

# 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

Đối số thứ 6 có thể là tên người dùng. Ngoài ra, bạn có thể đặt các tập lệnh trong /etc/cron.dthư mục. Các tập lệnh có dạng tương tự như các mục crontab được mô tả ở trên, ví dụ:

# /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

Bạn có thể đặt các tập lệnh trong các thư mục này, nhưng chúng có nghĩa là được chạy dưới quyền root:

  • cron.d Daily
  • cron.hourly
  • cron.weekly
  • cron.monthly

Cuối cùng, bạn có thể tạo các mục crontab dựa trên người dùng bằng cách chạy lệnh này với tư cách là một người dùng nhất định:

$ crontab -e

Các mục này được lưu trữ trong các tệp có cùng tên với người dùng trong thư mục này , /var/spool/cron/:

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

4

, tuy nhiên, công việc mà được bổ sung bằng tay để crontab hệ thống (chỉnh sửa / etc / crontab) sẽ được chạy với quyền tuyệt đối (ví dụ: chạy như root) trừ khi bạn chỉ định một người dùng khác.


Làm thế nào bạn sẽ chỉ định một người dùng không root?
Jim

1
Chỉ cần sử dụng crontab -e bình thường như một người dùng bình thường và nó sẽ được chạy như người dùng đó. :)
haneefmubarak

Hoặc chỉ cần chỉ định tham số 'tên người dùng' cronjob
Kamafeather
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.