kamath Mar 31, 2013 @ 11:15pm
Getting Steam to run under Parental Controls on Mac OS X (mountain lion)
HI.

So, for whatever reason, I decided I should post this information in case anyone *else* is looking for this.

I had a similar problem running Minecraft under Parental Controls on the Mac, and this "solution" works for (presumably) anything that won't run under Parental Controls (if the problem matches).

So, what, exactly, is the problem I'm solving here? If you have someone set up with Parental Controls on a Mac, and enforce Simple Finder, you will run across a few applications that just won't work, even after you've added the app to the Allowed Applications lists.

Now, we're going to do some diving in to terminal, and even building an app here, so if you don't know what you're doing, please go find your inner or external geek for help.

Here's what I've found: The Simple Finder and Parental Control mechanism in Mac OS X enforces a practice that the regular finder does not: That the name of the application (foo.app) is the same as the actual binary invoked (foo) inside the Application Bundled. In other words, for the application "Steam.app", the Simple Finder with Parental Controls will fail dismally, because the application will launch 'steam.sh' in the bundle.

To see what I'm talking about, open terminal and type the following:

ls -l /Applications/Steam.app/Contents/MacOS

So, you'll see a bunch of stuff, including a directory called "steam" and a file called "steam.sh".

When Steam.app is double clicked, it will launch steam.sh. The Simple Finder says "Hay, you're not running "Steam", and ask for authorization.

So, what's the solution?

For minecraft, it's not hard to move the launcher to "Minecraft" and create a shell script called the name of the launcher to run the "real" launcher. But here, you can't do that, because a) the HFS filesystem is case-insensitive, and b) there's a directory called 'steam', so you can't create a file called "Steam".

So, what's person to do?

Enter Platypus[sveinbjorn.org]!

So, it turns out this little script-to-app tool is exactly what we need.

Go download it, and prepare to make your first Mac OS X Application!

The steps are rather simple.

  • Run the Platypus application
  • I called my application "Steamy", Script Type Shell, /bin/sh, Output = None
  • Choose a uniq identifier (the default will probably be fine), and uncheck all the boxes (Run with..., Secure..., Run in..., Remain...)
  • Take a deep breath and click "New" under "Script Path"
  • Enter the following

    #!/bin/sh

    STEAM="/Applications/Steam.app/Contents/MacOS/steam.sh"

    if [ -x $STEAM ]
    then
    (exec $STEAM "$@" > /dev/null 2>&1 < /dev/null)&
    fi
  • Click "Create"
  • leave the checkboxes empty, and save the app somewhere

Now you're almost done. Because of Gatekeeper, you can't run this app. I mean, *YOU* can, because you made it. So you can run the Application you just made to be sure it fired up Steam properly.

So the last few steps are:

  • Move the application to /Applications
  • Log in to your Mac as the Parentally Controlled account
  • Run the full Finder
  • Find the app in /Applications
  • Right click on the app, and select "Open"
  • Authenticate to allow the app to run.
  • You'll likely have to authenticate a bunch of things
  • Quit the app after it brings up Steam
  • Rerun the app and ensure it loads without authorization

So, that should be it. Assuming you said "Always allow" to the prompts, you should be able to open System Preferences, and ensure your application is listed as an authorized app in the parental controls for the user you're setting up.

If it all looks good, switch to Simple Finder and see if it works.

Hope this helps.

Oh, what the shell script does: It basically looks to see if you have Steam installed in /Applications, and if it finds the executable inside the app (steam.sh) it starts it in a subshell with no input or output, and exits.

This should theoretically work for any application with this problem.

I look forward to the comments saying "this didn't work for me" (which I'll never read). Please note this is not meant to be a tutorial, but more a rough guide. PLEASE find your technical geek who is comfortable in Terminal if you aren't.

Sean
< >
Showing 1-5 of 5 comments
Dragonic May 11, 2015 @ 4:37am 
bab
nixparlol Oct 9, 2020 @ 3:22pm 
lol
Bob The Builder Oct 10, 2020 @ 12:40am 
kamath are u alive
Hallux Oct 10, 2020 @ 5:10am 
Originally posted by Bob The Builder:
kamath are u alive
This was posted 7.5 years ago, it's entirely possible their life status has changed in that time.

It's also very possible that Apple has tightened up the parental controls over that time, such that this won't work.
kamath Nov 12, 2020 @ 9:02pm 
Well, I did say "I look forward to the comments saying "this didn't work for me" (which I'll never read).".

Yes, I am alive.
< >
Showing 1-5 of 5 comments
Per page: 1530 50

Date Posted: Mar 31, 2013 @ 11:15pm
Posts: 5