当 cron 作业以什么权限运行时,它会执行什么?
对此我不确定。它是否具有与通过添加它的用户相同的权限crontab -e
?
答案1
您可以在系统 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 身份运行:
- 每日计划表
- 每小时一次
- 每周计划
- 每月计划
最后,您可以通过以给定用户身份运行以下命令来创建基于用户的 crontab 条目:
$ crontab -e
这些条目存储在与此目录中的用户同名的文件中/var/spool/cron/
:
$ sudo ls -l /var/spool/cron/
-rw------- 1 saml root 0 Jun 6 06:43 saml
答案2
是的但是,手动添加到系统 crontab(编辑 /etc/crontab)的作业将以绝对权限运行(即:以 root 身份运行),除非您指定其他用户。