macOS frustrations

This post doesn’t have anything of “value”. I just wanted to capture my frustration somewhere, and this blog seemed to be the best place. It’s more for me to stumble upon in the future and remember with an “ah ha”.

I love Macs and macOS, but boy oh boy, is it hard to do anything “serverish” on that. After spending some time moving stuff from my Raspberry Pi to the iMac earlier this week, I undid all that. It’s so much of a chore to do anything like this easily with macOS.

First of all I wanted to mount a bunch  of SMB folders automatically always. It’s straight-forward as long as you are ok with the mounting happening once you login (I was). Simply add each folder as login items. But the irritating thing with that is each time I login I have a bunch of Finder instances that open up and I have to close them one by one. Eugh.

I could have lived with that but the next issue was whenever I’d move anything to one of these shared folders it gave me an error message like this: set owner/group (was: 501/0): Operation not permitted. There’s one more message about flags after this but I didn’t get a chance to capture it. I am not sure why I was getting these – these shared folders are on my Synology and I have no issues doing the same from the Pi. (In retrospect, I wonder if it is down to the account I was connecting with. From the Pi I was using a different account when connecting to the Synology, I should have tried connecting with the same account from macOS Finder to see if that makes a difference. It shouldn’t, as both accounts have the same rights, but something worth trying out later).

There’s plenty of suggestions on the Internet, none of which helped. Some of them like doing a “Get Info” on the shared folder and checking something under “Sharing & Permissions” don’t even seem to be available any more (I was doing this on macOS Ventura).

I tried an alternative approach then of mounting these shares via automount, following the excellent instructions here. This worked well in that I didn’t get the errors any more (possibly because since I had to put my credentials in a file I resorted to using the same account I was connecting with from the Pi, so I don’t know if automount was the solution) and it had the added advantage of not having a bunch of Finder windows open at login. I hated putting credentials in a text file, but alternatives like nsmb.conf didn’t work for me either. I couldn’t even get mount_smbfs -N to use credentials from nsmb.conf. Not that it would have helped, I was simply replacing one text file with another. :)

The problem with automount is that it puts the volumes under /System/Volumes instead of /Volumes. The solution seems to be to use /etc/synthetic.conf but I couldn’t get that working. I could get it working to mount something under / but not under /Volumes. Maybe something’s changed with Ventura and /Volumes is further protected, I dunno. I spent a lot of time Googling and making changes, but eventually gave up as the only way to test this was by rebooting the device and I got tired after a while.

Another point of frustration was the launching of the apps itself. I added them to Login Items but that means each time I login I have a bunch of apps that open windows on the screen. I didn’t want that, I just want them in the background. Am pretty sure in the past Login Items had a “Hide” checkbox, but I don’t see it any more. I suppose I could have spent some time creating a launchctl plist file but by this point I felt this was turning out to be a wasteful exercise. I guess the thing is macOS is the OS I started using only a few years ago, and my use of it has mostly been as a regular user rather than a geek or sys admin… so while I am more familiar with Windows or even Linux to an extent in terms of where the logs are or what gotchas to expect or how to do things, macOS is very new to me and I am not in the mood to spend time and figure things out. Moreover the OS itself doesn’t want you to dig too much under the hood, and I suppose I have this dissonance within me in that macOS tries to keep things easy – which is good – so I’d expect everything else I want to do to be equally easy. Want to launch an app at login without showing its window? – sure, click this button. Or… want to turn off warnings like “do you want to allow incoming connections” and “do you want to allow the app to connect to network shares” etc. – sure, easy peasy. But that’s not the case with macOS once you step past the well paved path of what’s made available to you. When you step off that, the system tries to nudge you gently to giving up on whatever you want to do and just stick with the defaults. Heck, you can’t even do things like whitelist an app in the firewall via command line (yes I know of the /usr/libexec/ApplicationFirewall/socketfilterfw --add command but kept giving errors like The application is not part of the firewall).

Anyways, the end result of all this was that I switched all these back to the Pi… at least that doesn’t fight me back on “serverish” kind of tasks. Best to use the macOS as a regular end user and stick to the nicely paved path, and avoid stepping much off it.

ps. Not to give a wrong impression, I love macOS. Mostly what I want from a computer as an end-user is something that gives me a nice well lit secure space with fountains and greenery and benches that I can sit in and do what I want – browse the Internet, code, beautiful looking apps – and macOS provides all that. I’d rather use macOS for my day to day tasks over Windows or Linux. I guess the thing to remember is to use the tool suited for the task, and depending on the task it is sometimes better to use Linux (or any of the BSDs) over macOS. These OSes complement each other.