How to Fix Cron Permission Issues in macOS Big Sur, Catalina, & Mojave
Some advanced Mac users may have noticed that certain shell scripts with cron, cron jobs, and crontab are either not working at all, or not able to function properly in the newest versions of MacOS, notably Mojave 10.14, Catalina 10.15, macOS Big Sur 11, and later. Depending on the situation, this may be accompanied by a permissions error, an operation not permitted error, or a script or cronjob may simply fail silently in the background. While there are numerous reasons a cronjob may fail, strict security measures in the latest MacOS releases may also be at fault and cause problems for some users.
This article will walk through resolving cron permissions issues with the latest versions of MacOS, including macOS Big Sur, Catalina, and Mojave.
Note this is aimed at advanced Mac users only. If you don’t use cron and have permission related issues with it, then you will not want to make any of these modifications.
How to Grant cron Full Disk Access in MacOS
If cron is having permissions issues in the latest versions of MacOS, you will need to grant cron full disk access on the Mac. Here’s how to do this:
- Open System Preferences from the Apple menu, then choose “Security & Privacy”
- Go to the “Privacy” tab, then select “Full Disk Access” from the side menu options
- Click the lock icon in the corner and authenticate with an admin password to grant permission to modify Full Disk Access settings
- Now from the Finder in MacOS, pull down the “Go” menu and choose “Go To Folder”
- Enter the path: /usr/sbin/cron and choose Go
- Drag and drop “cron” into the list of apps and processes with Full Disk Access permission, ‘cron’ should now appear in the list
- Close out of System Preferences and the open Finder sbin window when finished
While you’re in the same settings section, you may also want to add the Terminal application to the Full Disk Access options to fix “Operation not permitted” Terminal error that can also be encountered by the new security measures in MacOS, and perhaps smbd too if you rely on it for networking.
As mentioned before, this is for advanced users only, and you should not grant apps, processes, or anything else Full Disk Access if you do not know exactly what you’re doing and why you’re doing it. Cron is able to run processes automatically with full root access in the background on a Mac, which has obvious legitimate uses as well as security implications, so if you aren’t specifically needing that ability then you should not adjust this setting.
You can always revoke Full Disk Access at any time in MacOS by returning to the settings and adjusting accordingly. Similarly, you can also adjust and control what apps can access files and folders on the Mac. These security features are best left alone by most users, but advanced users often tweak these settings to accommodate specific apps and activity on their computers.
Cron is quite powerful and it can be used for all sorts of automation, backups, scripting, and other advanced activity, you can always check crontab for scripts and change the default crontab editor if you’d like too.
Did this help resolve any cron issues you were experiencing on new versions of Mac OS? Do you have any particular tips or tricks for cron? Share your thoughts and experiences in the comments.
A big thank you !!
to answer Abel, who have no option to ‘Go to a Folder’ It’s just a dropdown that doesn’t navigate to the base /usr level…
press Cmd + Shift + G to be able to input /usr/sbin and click on cron
it solved all my problems, thank again
If you are accessing macOS machines through SSH (terminal) then you should give full disk access to ssd-keygen-wrapper and Terminal as well along with cron.
Many thanks … finally found this and solved my failed recursive zip jobs on Ventura that use cron. The job would run but they would not recurse. Any amount of searches for zip and recurse and cron failed to find anything meaningful … so it has to be permissions, right?
Leaving the comment to thank you AND to help someone else solve the same problem a bit faster than I did!
How do I do this on Ventura? I don’t have the option to ‘Go to a Folder’ It’s just a dropdown that doesn’t navigate to the base /usr level… I can’t find it.
thank you for this guide. In case anyone else’s crons were not running check your terminal mail. That is where I was getting “operation not allowed” for some reason.
This solved the problem “crontab operation not permitted” in Big surf 11.2.3, Thank you!!!
This worked perfectly on Big Sur 11.0.1 – thanks!
Thank you so much, I spent so long trying to troubleshoot why it wasn’t working and didn’t realize it was a permissions issue until I saw this.
I still have not solved my problem running an “automator” .app via cron. Used to work in the previous MacOS just fine. I get an error from Terminal as follows… zsh: permission denied: /Users/Mamed/Documents/thefileIrun.app. It’s like my directory is not accessible, but cron has full disk access?!
I have tried everything here, and still have not solved my problem running an “automator” app via cron. Used to work in the previous MacOS just fine. I get an error from Terminal as follows… zsh: permission denied: /Users/Mamed/Documents/thefileIrun.app. It’s like my directory is not accessible, but cron has full disk access. Can you assist?
Great tip, thanks.
If you are accessing macOS machines through SSH (terminal) then you should give full disk access to ssd-keygen-wrapper and Terminal as well along with cron.