【问题标题】:Errno 1: Operation not permitted while running cron job in crontabErrno 1:在 crontab 中运行 cron 作业时不允许操作
【发布时间】:2020-11-05 01:45:34
【问题描述】:

我知道这是一个常见错误,并且已在 SO 上多次询问过此错误。我已经通过了所有解决方案,但没有一个对我有用。

我在 iMac(运行 Catalina)上使用 crontab 来设置 cron 作业:

42 11,20 * * * cd path/to/directory && echo <password> | sudo -S /Library/Frameworks/Python.framework/Versions/3.8/bin/python3 filename.py >> log.txt

我得到的完整错误:

Password:/Library/Frameworks/Python.framework/Versions/3.8/bin/python3: can't open file 'filename.py': [Errno 1] Operation not permitted

我试过了:

  • 允许终端拥有全盘访问权限
  • 使用 sudo chown my-username:my-groupname filename 设置目录中文件的权限
  • 在命令中添加密码

但这个错误永远不会改变。

感激地接受任何帮助。

【问题讨论】:

  • 在运行该命令时是否记录了任何相关的警告或错误,您能否检查系统日志? (我的语法可能是错误的)
  • 脚本所在的“路径/到/目录”是什么?如果它位于 Apple 的透明同意和控制 (TCC) 系统认为私有的用户目录中,您可能会遇到 TCC 限制。授予对终端的全盘访问权限对 cron 作业没有帮助,因为它们不在终端下运行。您也许可以授予对 cron 本身的访问权限(请参阅 cmets here),但最好将所有内容移动到非私有位置。
  • @VPfB 我不确定要在那里寻找什么,但在上次运行时我没有看到任何名称中带有“cron”的内容。
  • @GordonDavisson 当时该文件夹实际上在我的 Dropbox 文件夹中。我将它拖到桌面并重写了 cron 作业以反映新位置,但我得到了完全相同的错误。
  • @MBWD 桌面文件夹也被视为私人位置。尝试将其放在用户主目录之外的某个位置。

标签: python macos cron


【解决方案1】:

我能够解决这个问题。这些是您可以尝试遵循的步骤:

  1. 打开系统偏好设置 -> 安全和隐私 (Mac OSX Catalina)
  2. 打开隐私标签
  3. 点击全盘访问
  4. 确保您的 python 版本已添加到具有访问权限的应用程序列表中。

要做到这一点,只需找出 Python 在系统中的位置,通过将路径粘贴到 Finder->Go->Go To Folder 中进行导航,找到 exe 文件,然后将其拖到隐私。

【讨论】:

    猜你喜欢
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 2017-12-06
    • 2021-02-18
    • 2014-04-04
    • 2020-03-26
    相关资源
    最近更新 更多