The Ultimate Business Machine - Archives
List of Categories : Commentary * Database * Singapore * Technology * Travel *
Sat 24 Mar 2012
Mountain Lion Enablers
Category : Technology
I've always wondered how Apple's Server Admin app worked, so that it was able to run on any OS X client machine to remotely administer the OS X Server.
I think I've just found my own way of doing that. Let me backtrack a bit.
I've been spending the last two weeks or so figuring out how to replace two Cocoa Foundation API calls - namely, AuthorizationExecuteWithPrivileges and AuthorizationCopyPrivilegedReference - that have been deprecated by Apple, meaning they're going away, soon, maybe even in Mountain Lion.
Without them, my GUI apps wouldn't be able to get the elevated administrator level privileges to change things at the system level.
There's another way to do that, that Apple is promoting - via launchd. And with that buzzword as a start, I meandered through a whole stream of other buzzwords - code signing, SMJobBless, launchd.plists, Mach ports, Unix domain sockets and TCP ports - before realising I've just broken through the muck to reach my very own Holy Grail - the ability to remotely administer the server (and safely at that, at least to a certain extent).
And it's fantastic. So much power. I could salivate at the things I could now potentially do. I was getting jaded at the thought of updating my suite of enabler apps for yet another one of Apple's cats. (And so soon, too, after the last one.)
But now, I'm juiced, thinking about building a version of MailServe that I could run, while on holiday traveling, say, to remotely configure and troubleshoot my server, if it went down.
Of course, these enablers wouldn't ever be allowed in the Mac App Store (because they require elevated privileges). But I'm building them for myself, first of all, and they'll be code-signed by my Apple Developer ID, so they'll still be able to run on Mountain Lion. You just continue to get them from my site. These enabler apps - they have some life left in them, still.