繁体   English   中英

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

[英]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存在,并且该脚本要访问的所有文件都被chownedchgrpedreports 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM