以非root用户身份运行python cron脚本

时间:2013-08-08 16:18:26

标签: python cron cron-task

我在CentOS 6框中将python脚本作为特定用户帐户运行时遇到了一个小问题。

我的cron.d / cronfile如下所示:

5 17 * * * reports /usr/local/bin/report.py > /var/log/report.log 2>&1

帐户reports存在,该脚本要访问的所有文件都是chownedchgrpedreports。 python脚本是chmod a+r。 python脚本以#!/usr/bin/env python开头。

但这不是问题。问题是我在日志文件中看不到任何内容。 python脚本甚至没有开始运行!任何想法为什么会这样?

如果我在cronfile中将用户更改为root而不是reports,则运行正常。但是我无法在生产服务器中将其作为root运行。

如果您有任何疑问,请询问:)

/ E: 如果我sudo -u reports python report.py它可以正常工作。

1 个答案:

答案 0 :(得分:0)

Cron作业使用设置了cron作业的用户的权限运行。 I.E.无论reports用户的cron表中是什么,都将以reports用户身份运行。

如果您必须sudoreports登录时运行脚本,那么该脚本可能也不会作为cron作业运行。在没有reports的情况下以sudo身份登录时,您是否可以运行此脚本?如果没有,那么cron工作也不能。有意义吗?

检查您的日志 - 您是否收到权限错误?

有很多原因导致您的脚本需要某些权限,但解决此问题的一种简单方法是将cron作业设置为root而不是reports。更长的方法是查看究竟需要提升权限的内容并修复它。它是文件权限吗?受保护的命令?将reports添加到某些群组可能会让您在reports而不是root下运行它。

*如果/当您以root身份设置cron作业时,请小心