When macOS prompts you to grant a terminal app (like Terminal, iTerm2, or a script running in it) “Full Disk Access,” it is asking for permission to read and write to protected areas of your system — including your Messages history, Mail database, Safari data, Time Machine backups, and other apps’ containers. You grant it in System Settings (or System Preferences on older macOS) under Privacy & Security, and you can revoke it at any time. This article explains what Full Disk Access actually does, why the prompt appears, how to grant it safely, and what the risks are.
What Full Disk Access Means on macOS
Full Disk Access (FDA) is a macOS privacy protection introduced in macOS 10.14 Mojave. It restricts certain folders and files from being read by any app unless the user explicitly approves that app. The protected data includes:
- Your Messages, Mail, Safari, and Photos databases
- Time Machine backups and local snapshots
- Other apps’ container folders (e.g., ~/Library/Containers)
- Keychain items and login items
- The entire home folder except a few whitelisted subfolders
When you use a terminal emulator, the terminal itself is usually not granted FDA by default. But if you run a command that tries to access one of those protected areas — like rsync to a Time Machine backup, mdfind over Mail, or a backup script that reads Safari history — macOS will either silently fail or show a prompt asking for permission. If you see a prompt, it’s because the system detected an attempt to access protected data.
Why the Prompt Appears (and Why It Might Not)
The prompt appears when a terminal app first tries to access a protected file. However, many users never see it because the terminal is already running as root, or because the app was installed before Mojave and was grandfathered in. Also, if you run the terminal via SSH, the prompt may not appear at all — instead, the access is silently denied. That’s why you might run a command that works in one terminal but fails in another.
Another reason the prompt can be confusing: it often appears not for the terminal itself, but for a helper process like rsync, bash, or zsh. macOS treats each binary separately, so you might need to grant FDA to the actual command, not just the terminal window.
How to Grant Full Disk Access to a Terminal
Here are the exact steps for macOS Ventura and later (System Settings):
- Open System Settings from the Apple menu.
- Go to Privacy & Security in the sidebar.
- Scroll down and click Full Disk Access.
- Click the + button (you may need to unlock the padlock with your password or Touch ID).
- Navigate to Applications → Utilities and select Terminal (or your preferred terminal app).
- Click Open, and then make sure the toggle next to Terminal is turned on.
- Quit and reopen Terminal for the change to take effect.
For macOS Monterey and earlier (System Preferences), the path is System Preferences → Security & Privacy → Privacy tab → Full Disk Access. The rest is the same.
What Happens After You Grant It
Once granted, the terminal and any process it spawns (like scripts, rsync, or Homebrew commands) can read and write to all protected folders. That means you can back up your entire home directory, search inside Mail, or modify system files without permission errors. However, the change is not instant — you must quit and reopen the terminal app. Also, the permission applies to the app itself, not to a specific user. If you have multiple terminal apps, you must grant each one separately.
It’s important to note that granting FDA to a terminal is essentially giving that terminal root-like access to your personal data. It does not elevate you to root, but it bypasses the privacy layer. Malicious scripts or a compromised terminal could exfiltrate your passwords, messages, or browser history.
Common Problems and Misconceptions
One common issue: you grant FDA to Terminal, but a command still says “Operation not permitted.” This usually happens because the terminal app you granted is not the one actually running the command. For example, if you use iTerm2 but granted FDA to Terminal, iTerm2 still lacks access. Or if you run a script via cron or launchd, those run under a different context and may not inherit the terminal’s permission.
Another misconception is that granting FDA to Terminal is the same as running as root. It is not. Root can access everything, but a process with FDA still respects Unix file permissions. So if a file is owned by root with mode 600, a non-root terminal with FDA still cannot read it. FDA only bypasses the privacy protections, not the standard POSIX permissions.
Also, some users think that toggling FDA off and on again fixes issues. That can help if the permission was granted incorrectly, but it’s not a universal fix. If you still get errors, check if the specific binary (like rsync) has its own entry in the FDA list.
Security Risks and Best Practices
Granting FDA to a terminal is a powerful permission. The main risk is that any script you run — even one you wrote — could accidentally delete or modify protected data. For example, a simple rm -rf with a wrong path could destroy your Mail database. More seriously, if your terminal is compromised by malware, the malware inherits FDA and can read your passwords, cookies, and personal files.
Best practices:
- Grant FDA only to the terminal you actually use, not to every terminal app.
- Revoke FDA when you no longer need it (toggle it off or remove the app from the list).
- Be cautious about granting FDA to third-party terminal apps that are not widely known.
- If you only need access to a specific folder, consider using
chmodor folder permissions instead of FDA. - Regularly review the Full Disk Access list in System Settings to see which apps have it.
Alternatives to Full Disk Access
If you need to access protected data but don’t want to grant full disk access, there are a few alternatives:
- Files and Folders permission: In the same Privacy & Security pane, you can grant access to specific folders (like Desktop, Documents, Downloads) without granting FDA. This is a more limited permission.
- Run the command as root: Using
sudocan bypass privacy protections, but only for that single command. It also requires your password each time. - Copy the data to an unprotected location: If you just need to read a file, copy it to your home folder first (if you have read access to it).
- Use a dedicated backup tool: Tools like Time Machine or Carbon Copy Cloner have their own permissions and don’t require you to grant FDA to a terminal.
Frequently Asked Questions
Will granting Full Disk Access slow down my Mac? No. FDA is just a permission flag; it does not affect performance. The only difference is that the terminal can now read protected files, which may cause more disk activity if you run commands that access them.
Can I revoke Full Disk Access later? Yes. Go back to System Settings → Privacy & Security → Full Disk Access, toggle off the app, or remove it with the minus button. The change takes effect immediately for new processes, but you may need to quit the terminal first.
Why does my terminal still show “Operation not permitted” after granting FDA? This usually happens because the terminal was not restarted after granting, or because the command is running under a different process (like a script launched from Finder). Also, check if the specific binary has its own FDA entry — for example, if you run rsync, you may need to add rsync separately.
Is Full Disk Access the same as giving an app root access? No. FDA bypasses privacy protections but not Unix file permissions. Root can read everything regardless of permissions, but a process with FDA still cannot read files that are restricted by POSIX permissions (e.g., a file owned by root with mode 600).
Does granting FDA to Terminal affect other users on the same Mac? Yes. FDA is a per-app, system-wide setting. If you grant it to Terminal, any user who can run Terminal will inherit that permission. This is a security consideration for shared Macs.
Can I grant FDA to a script instead of the terminal? Yes, but it’s tricky. You can add the script’s interpreter (like /bin/bash) or the script itself to the FDA list. However, the script must be a standalone executable. If it’s a text file run via bash script.sh, you need to grant FDA to bash, which is a broader permission.
Related
Formula used
Each line is one input (in, sel, list) or one result (out: label, unit, formula, decimals). How the calculators work
Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.
More cards in this drawer
- Delete Picture Kik? How to Remove Photos
- How to Stop WordPress Comment Spam: A Layered Guide
- What Happens to X Replies, DMs, and Followers After Deletion?
- Data Breaches That Shook the World
- Disable Google Assistant: Turn It Off on Android & Home
- Resin vs FDM Printers for Miniatures: Detail, Durability, Cost