logoalt Hacker News

cyberaxtoday at 12:10 AM1 replyview on HN

I couple of months ago, I wasted about 4 hours debugging issues with my app. Command-line scripts didn't work properly for some reason, while my IDE worked fine.

Turned out that I either missed or accidentally denied the permission to access local networks for iTerm. So the `curl` utility installed from Homebrew was silently failing, while the system-provided `/usr/bin/curl` worked fine. Because it has special permission from Apple.

Can I just give the same permission to iTerm? Nope. We are not worthy of that power, and must re-affirm permissions every 30 days for all non-Apple software.

Oh, and these permission popups happen at random moments, including during presentations or meetings. And if you don't accept them, they are silently denied.


Replies

tpmoneytoday at 1:12 AM

> Can I just give the same permission to iTerm? Nope. We are not worthy of that power, and must re-affirm permissions every 30 days for all non-Apple software.

Not sure what permission you're referring to or what your curl script is trying to do but `/opt/homebrew/opt/curl/bin/curl http://www.google.com` works just fine on Tahoe from both iTerm2 and ghostty. Looking through the various permission grants, the only one they both have in common is "App Management". They share some file permission grants, but where as iTerm has full disk access, ghostty only has Downloads and removable media. In the past I've found I've needed to add terminals like iTerm to the Developer Tools permission, but ghostty isn't in there currently and curl is still working just fine. And in none of these cases have I ever needed to re-affirm the permission every 30 days.

Any chance you have "disclaim ownership of children" setting enabled in iTerm? Maybe if iTerm is not allowing child processes to use its own permissions, you're having to re-authorize curl specifically (and it's getting updated about once every 30 days?)

> And if you don't accept them, they are silently denied.

This is IMO the correct behavior. If something asks for permission and it's not explicitly granted, then the default should always be denied.

show 1 reply