【发布时间】: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 桌面文件夹也被视为私人位置。尝试将其放在用户主目录之外的某个位置。