cron作业的运行时权限是什么?


15

当cron作业以什么特权运行时,它会执行什么?

对此我不确定。它是否具有通过添加用户的相同特权crontab -e


“它是否具有与通过crontab -e添加它的用户相同的特权?” 是。或者从技术上讲,它是crontab所在的用户。–
Kevin

Answers:


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

您可以将脚本放在这些目录中,但它们必须以root用户身份运行:

  • 每日定时
  • 每小时
  • cron.weekly
  • cron。每月

最后,您可以通过以给定用户身份运行以下命令来创建基于用户的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)中的作业将以绝对权限(即:以root用户身份运行)运行,除非您指定其他用户。


您将如何指定非root用户?
吉姆(Jim)

1
只需以普通用户身份使用crontab -e,它将以该用户身份运行。:)
haneefmubarak

或仅指定“用户名” cronjob参数
-Kamafeather
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.