【问题标题】:Running python cron script as non-root user以非 root 用户身份运行 python cron 脚本
【发布时间】:2013-08-10 11:06:03
【问题描述】:

我在 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 它工作正常。

【问题讨论】:

    标签: python cron cron-task


    【解决方案1】:

    Cron 作业以设置 cron 作业的用户的权限运行。 IE。 reports 用户的 cron 表中的任何内容都将以 reports 用户身份运行。

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

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

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

    *如果/当您以 root 身份设置 cron 作业时要格外小心

    【讨论】:

    • 每当我尝试su - reports 时,我都会收到“报告帐户当前不可用”或类似的信息。我明天上班检查再发帖:)
    • 我现在可以做su - reports 并正常运行脚本。所以问题不在于权限。我仍然看不到日志文件的输出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    相关资源
    最近更新 更多