Apa izin runtime dari pekerjaan cron?

15

Ketika pekerjaan cron berjalan dengan privilege apa yang dijalankannya?

Saya tidak yakin tentang itu. Apakah dengan hak pengguna yang sama dengan yang menambahkan melalui crontab -e?

Jim
sumber
"Apakah dengan hak pengguna yang sama dengan yang menambahkannya melalui crontab -e?" Iya. Atau secara teknis pengguna yang crontab-nya masuk.
Kevin

Jawaban:

18

Anda dapat menentukan pengguna di entri crontab sistem seperti:

# 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

Argumen ke-6 bisa menjadi nama pengguna. Selain itu Anda dapat memasukkan skrip ke dalam/etc/cron.d direktori. Script mengambil bentuk yang sama dengan entri crontab yang dijelaskan di atas, misalnya:

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

Anda dapat menempatkan skrip di direktori ini, tetapi skrip ini dimaksudkan untuk dijalankan sebagai root:

  • cron. setiap hari
  • cron
  • cron.weekly
  • cron. setiap bulan

Akhirnya Anda dapat membuat entri crontab berbasis pengguna dengan menjalankan perintah ini sebagai pengguna yang diberikan:

$ crontab -e

Entri ini disimpan dalam file dengan nama yang sama dengan pengguna dalam direktori ini, /var/spool/cron/:

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

Ya , bagaimanapun, pekerjaan yang ditambahkan secara manual ke sistem crontab (edit / etc / crontab) akan dijalankan dengan izin absolut (yaitu: jalankan sebagai root) kecuali Anda menentukan pengguna lain.

haneefmubarak
sumber
Bagaimana Anda menentukan pengguna non-root?
Jim
1
Cukup gunakan crontab -e secara normal sebagai pengguna normal dan itu akan dijalankan sebagai pengguna itu. :)
haneefmubarak
Atau cukup tentukan parameter 'nama pengguna' cronjob
Kamafeather