一些高级Mac用户可能已经注意到某些带有croncron作业和crontab的shell脚本要么根本无法工作要么无法在最新版本的MacOS中正常运行尤其是Mojave 10.14Catalina 10.15和更高版本根据情况这可能伴随有权限错误不允许的操作错误或者脚本或cronjob可能只是在后台静默失败尽管有很多原因导致cronjob失败但最新的MacOS版本中严格的安全措施也可能会出错并给某些用户造成问题
本文将逐步解决最新版本的MacOS(包括MacOS Catalina和Mojave)中的cron权限问题
请注意这仅适用于高级Mac用户如果您不使用cron并遇到与权限相关的问题那么您将不想进行任何这些修改
如果cron在最新版本的MacOS中存在权限问题则需要在Mac上授予cron完整磁盘访问权限这样做的方法如下:
从Apple菜单中打开“系统偏好设置”然后选择“安全和隐私”
转到“隐私”选项卡然后从侧面菜单选项中选择“全盘访问”
单击角落的锁定图标然后使用管理员密码进行身份验证以授予修改“全盘访问”设置的权限
现在从MacOS的Finder中下拉“转到”菜单然后选择“转到文件夹”
MacOS中的cron路径
输入路径:/ usr / sbin / cron并选择Go
将“ cron”拖放到具有“完全磁盘访问”权限的应用程序和进程的列表中“ cron”现在应出现在列表中
在MacOS中允许cron完整磁盘访问
完成后关闭“系统偏好设置”并打开Finder sbin窗口
在相同的设置部分中您可能还需要将“终端”应用程序添加到“全盘访问”选项中以修复“不允许操作”终端错误MacOS中的新安全措施也可能会遇到终端错误也许是smbd如果您依靠它进行网络连接也是如此
如前所述这仅适用于高级用户如果您不确定确切的操作以及执行的原因则不应授予应用程序进程或其他任何“全盘访问”权限Cron能够在Mac上具有完全root访问权限的Mac后台自动运行进程这具有明显的合法用途以及安全隐患因此如果您不是特别需要该功能则不应调整此设置
您随时可以在MacOS中随时撤消“全盘访问”方法是返回设置并进行相应的调整同样您也可以调整和控制哪些应用可以访问Mac上的文件和文件夹大多数用户最好不要理会这些安全功能但是高级用户通常会调整这些设置以适应其计算机上的特定应用程序和活动
Cron功能非常强大可用于各种自动化备份脚本编写和其他高级活动您随时可以检查crontab中的脚本并根据需要更改默认的crontab编辑器