我在 10.04 上运行一个网站,但不确定如何设置我的 crontab。我应该在 root 下创建它还是在 www-data 等用户下创建它?Python、Postgres、Nginx。
答案1
JGBelacqua 的观点很正确,您的 cron-user 上下文取决于任务。它真的需要 root 权限才能运行吗?如果指定的任务不需要任何提升的权限,您最好以 WWW 服务用户 www-data 的身份运行它。
这里的主要思想是,如果您需要访问 www-data 无法访问的系统部分(并且有充分的理由),那么将 crontab 设置为 root 用户是安全的。只需确保如果您要移动文件,请关联正确的 chown/ghgrp 命令,以便 www-data 可以访问它们(分别地,如果它们需要由 www-service 访问)
举个例子,我使用一个相当全面的 PHP 脚本每晚备份我的 pgSQL 和 MySQL 数据库。它由我的 www-data 用户执行,因为它会压缩、存档并将它们发布到管理 Web 界面。因此它需要能够被 www-data 访问。如果我不需要这样做;比如说,我要将我网站的夜间快照复制到一个我不想让普通用户访问的目录中,我会以 root 身份运行它。