[英]Running python cron script as non-root user
我在CentOS 6框中以特定的用户帐户运行python脚本时遇到一个小问题。
我的cron.d / cronfile看起来像这样:
5 17 * * * reports /usr/local/bin/report.py > /var/log/report.log 2>&1
帐户reports
存在,并且该脚本要访问的所有文件都被chowned
并chgrped
为reports
。 python脚本是chmod a+r
。 python脚本以#!/usr/bin/env python
开头。
但这不是问题。 问题是我在日志文件中什么都看不到。 python脚本甚至没有开始运行! 任何想法为什么会这样?
如果我将用户更改为root
而不是cronfile中的reports
,则运行良好。 但是,我不能在生产服务器中以root
身份运行它。
如果您有任何问题,请询问 :)
/ e:如果我执行sudo -u reports python report.py
则工作正常。
Cron作业使用设置Cron作业的用户的权限运行。 IE浏览器无论是在的cron表reports
的用户,会随着运行reports
用户。
如果您必须如此sudo
才能使脚本作为reports
登录时运行,那么该脚本也可能不会作为cron作业运行。 在没有sudo
reports
下以reports
身份登录时可以运行此脚本吗? 如果不是,那么cron作业也不能。 说得通?
检查您的日志-您是否遇到权限错误?
脚本需要某些特权的原因有很多,但是解决此问题的一种简单方法是将cron作业设置为root
而不是reports
。 更长的方法是查看究竟需要什么提升权限并加以解决。 是文件权限吗? 受保护的命令? 也许将reports
添加到某些组将使您可以在reports
下而不是root
下运行它。
*如果/当您将cron作业设置为root时,请务必格外小心
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.