如何修复 macOS Big Sur、Catalina 和 Mojave 中的 Cron 权限问题

Mac 终端图标

一些高级 Mac 用户可能已经注意到,某些带有 cron、cron 作业和 crontab 的 shell 脚本要么根本不工作,要么无法在最新版本的 MacOS 中正常运行,特别是 Mojave 10.14、Catalina 10.15、macOS大苏尔 11 及更高版本。根据情况,这可能伴随着权限错误,操作不允许错误,或者脚本或 cronjob 可能只是在后台默默地失败。虽然 cronjob 可能失败的原因有很多,但最新 MacOS 版本中严格的安全措施也可能有问题并给某些用户带来问题。

本文将逐步解决最新版本的 MacOS(包括 macOS Big Sur、Catalina 和 Mojave)的 cron 权限问题。

请注意,这仅针对高级 Mac 用户。如果您不使用 cron 并且遇到与权限相关的问题,那么您将不想进行任何这些修改。

如何在 MacOS 中授予 cron 完全磁盘访问权限

如果 cron 在最新版本的 MacOS 中有权限问题,您将需要授予 cron 在 Mac 上的完整磁盘访问权限。执行此操作的方法如下:

  1. 从  Apple 菜单打开系统偏好设置,然后选择“安全和隐私”
  2. 转到“隐私”选项卡,然后从侧面菜单选项中选择“全盘访问”
  3. 点击角落的锁形图标并使用管理员密码进行身份验证以授予修改全盘访问设置的权限
  4. 现在在 MacOS 的 Finder 中,下拉“前往”菜单并选择“前往文件夹”
  5. MacOS 中的 cron 路径

  6. 输入路径:/usr/sbin/cron 然后选择Go
  7. 将“cron”拖放到具有完整磁盘访问权限的应用程序和进程列表中,“cron”现在应该出现在列表中
  8. 允许 cron 全磁盘访问MacOS

  9. 完成后关闭系统偏好设置和打开的 Finder sbin 窗口

当您在相同的设置部分时,您可能还想将终端应用程序添加到完整磁盘访问选项中,以 修复“Operation not permitted”终端错误,MacOS 中的新安全措施也可能遇到,如果您依赖它进行网络连接,也可能遇到 smbd。

修复 MacOS 中的 cron 权限问题

如前所述,这仅适用于高级用户,如果您不确切知道自己在做什么以及为什么要这样做,则不应授予应用程序、进程或任何其他完全磁盘访问权限。 Cron 能够在 Mac 的后台自动运行具有完全 root 访问权限的进程,这显然是合法的 使用以及安全隐患,因此如果您不是特别需要该功能,则不应调整此设置。

您随时可以在 MacOS 中通过返回设置并进行相应调整来撤销全盘访问。同样,您还可以调整和控制哪些应用可以访问 Mac 上的文件和文件夹。大多数用户最好不要使用这些安全功能,但高级用户通常会调整这些设置以适应计算机上的特定应用程序和活动。

Cron 非常强大,可用于各种自动化、备份、脚本和其他高级活动,您可以随时检查 crontab 中的脚本更改默认的 crontab 编辑器 如果您也愿意。

这是否有助于解决您在新版 Mac OS 上遇到的任何 cron 问题?您对 cron 有什么特别的提示或技巧吗?在评论中分享您的想法和经验。