6 ms·
Just recently learned I should be installing mac apps into my home directory Applications, not the system Applications (as every single app installer suggests).
by cypherpunks01 1y ago
Just recently learned I should be installing mac apps into my home directory Applications, not the system Applications (as every single app installer suggests). Of course, only makes sense for a single-user machine.
If I downgrade myself to a non-admin user, and install apps into my home Applications, then I'm not bothered by permissions requests from apps to update themselves. Almost all of them can just do it, on their own, with non-admin permissions. The only exceptions I've found are Tailscale and other stuff that needs higher level OS integration.
Edit since upvotes: Non-admin user operation was recommended by the Pareto Security app, see info on this specific item: https://paretosecurity.com/mac/checks/not-using-admin https://paretosecurity.com/mac/checks/not-using-admin
All Pareto security checks: https://paretosecurity.com/mac/checks https://paretosecurity.com/mac/checks
App: https://paretosecurity.com/mac https://paretosecurity.com/mac and https://github.com/paretoSecurity/pareto-mac https://github.com/paretoSecurity/pareto-mac
- Etheryte 1y agoUnfortunately many (most?) application developers don't know this either, and many of them go so far as to explicitly require their apps to be installed in /Applications, they simply won't work otherwise.
- xp84 1y agoNo comment on the overall topic, but I have long made a practice of installing into $HOME/Applications instead[1], and it's rare for me to encounter software that cares. A few apps have added popups to explain to beginners "Hey, you're running me from the Downloads folder, uhh, want me to properly move myself to /Applications/?" but that's about it. The only apps I run from /Applications that aren't part of the OS are the ones that still use "Installers" like Adobe apps, because I assume they spew crap all over anyway. I haven't tried moving those, but I wouldn't be surprised if they deeply cared. [1] The idea being that I could then migrate more easily by copying the whole home directory, and thus all my apps that didn't require "installation" would come over.
- nmgycombinator 1y ago> The idea being that I could then migrate more easily by copying the whole home directory, and thus all my apps that didn't require "installation" would come over. Unrelated, but this is what I find so interesting and cool about the drag-and-drop to install method prevalent on macOS. People complain, but what I guess they don't realize is that all they're doing is moving a folder into their `Applications` folder and that the "wizard" way they're used to is far messier. Granted, since I think it's up to the developers, they often seem to make the user drag and drop into the root `Applications` folder.
- manwe150 1y agoThat’s fine, but also just means the “real” installer just runs on first launch instead in those cases, whether that is to ask for permissions or setup launch scripts or copy files to more places But just think about how much fun phone apps could have been if you first installed an installer and than than that downloaded an app to install the side components before launching a configuration program for installing that specific software suite
- jen729w 1y agoJust so you know, there is something about dragging that app bundle to /Applications that causes something to happen. Because if you `mv` it in the terminal, the app often doesn't work. It's been a while since I did this, and I can't remember the details. Sorry. Someone else might.
- tonyedgecombe 1y agoThere is a bit of magic going on in Finder with /Applications. It’s actually two folders, one in the system partition which you can’t write into and one in the data partition where anything you install goes.
- SSLy 1y agoThere are three of them, two you've mentioned, and ~/Applications for each graphical user too.
- Klonoar 1y agoApple themselves have a quirk in some cases where apps that aren’t in an Applications folder get mounted as read-only. Granted I haven’t seen the bug in awhile, but I also never saw acknowledgement of it being fixed so…
- mike_hearn 1y agoThat's not a bug, it's a security feature (hack?) called translocation. It happens if you run an app that was downloaded without moving it first using the Finder.
- Klonoar 1y agoI know what the feature is called. I would not consider something so confusing to the end user to be a security feature. This is a bug, or you could use the label "broken".
- nmgycombinator 1y agoFascinating! Personally, I need an admin account in my daily work, so I wouldn't do this, but for those it could help it definitely looks interesting.
- mulmen 1y agoYou can still choose to install apps to ~/Applications if you are an admin.
- nmgycombinator 1y agoI'll definitely start considering it.
- nyanpasu64 1y agoI don't even have a ~/Applications on macOS 15.4.1.
- throwaway290 1y agoIf you install an app in ~/Applications, it can auto update without root, but any sus code can overwrite it without root rights too
- pbhjpbhj 1y agoWhich is madly insecure, right?
- throwaway290 1y agoI think so, somebody correct me if I'm wrong. Maybe if SIP is on and untrusted software is disabled then it would be caught, but if you have xcode then sus code can also probably sign whatever it created. /Applications seems defense in depth for developer machines that often run untrusted code. Apps ask for admin to update & then I can deny it and go check the official site and stuff for download later
- deleted 1y ago[deleted]
- mike_hearn 1y agoNope, that was fixed several releases back. macOS doesn't use the concept of a root user for years. It's there in the APIs for backwards compatibility but the actual enforced permission model is nothing like UNIX. 1. Apps can't tamper with each others files. Try writing an app that writes to another app's bundle, even if it's in $HOME, and you'll find you can't. One way to test this quickly is to ensure that your terminal app doesn't have "Manage applications" privilege in the settings app, restart it, then use vim to open a file in a bundle that appears to have user write permissions. You'll find it is read only. 2. root can't make arbitrary changes to the system unless you disable SIP (requires messing around in recovery mode terminals).
- throwaway290 1y agoI think you are wrong about Unix model only existing for compatibility 1. OK, so it requires terminal to have some entitlement first I guess. If you needed to grep some app's bundle in the past you probably gave it already. 2. many apps ask for admin user/password when updating. including say Docker. some developer software specifically says "we ask you this because we need to sudo" stuff under SIP I think includes some stock apps, some top level /bin and the like, but everything else is fair game for root. Which is a lot. If you use MacPorts then all of that is under sudo
- traceroute66 1y ago> as every single app installer suggests Not every single app installer, only those app installers written by incompetent devs. Those written by educated devlopers give you the option to install "for all users" or "just me" (or words to that effect).
- HnUser12 1y agoOh interesting, thank you! I wonder doing this will fix the issue where slack repeatedly asks admin password for updating.
- stefandesu 1y agoI knew that ~/Applications exists, but never really used it until I started at my new job where I didn’t have admin permissions by default. Now I’ve configured Homebrew to install casks into ~/Applications and it works for almost all applications.