MacOS – Parental Controls Always Allow does not work

applicationsmacosparental-controlspermission

I have enabled Parental Controls on my son's MacBook Pro (OS X 10.8.1, Mountain Lion) and have restricted the applications his account can use. Everything works fine with the exception of Minecraft (of course the application most important to him). Minecraft is marked as an application that he's allowed to use in the parental control settings.

When I try to start Minecraft under his account, a message pops up saying that he's not allowed to run it, giving the following three options:

  • Always Allow
  • Allow One Time
  • Cancel

When clicking Allow One Time, I have to enter the admin account username and password and the game starts without problems. But when I click Always Allow, it asks for the admin account as well, but then pops up the same message again. I have verified that I'm using the right admin account username and password, but it's still refusing to run the game.

When I disable parental controls, everything works, but the moment I turn it on again, it fails, despite having Minecraft in the list of allowed applications for his account.

In the Console application, I can see the following weird error message whenever this happens:

com.apple.launchd.peruser.501[148]: 
([0x0-0x11c11c].com.Mojang Specifications.Minecraft.Minecraft[1216]) 
Job failed to exec(3) for weird reason: 13

Has anybody else experienced this or knows how to fix this?

Best Answer

This gave me enough info to fix the Minecraft launcher. The prior answer works, but has an ugly menu name, which my son would pester me about. So instead, I fixed the Minecraft.app setup.

In a nutshell, in terminal:

cd /Applications/Minecraft/Contents/MacOS
mv JavaApplicationStub Minecraft
cat > JavaApplicationStub << EOF
#!/bin/sh

exec `dirname $0`/Minecraft "$@"
EOF
chmod +x ./JavaApplicationStub

Basically, it would appear that ParentalControls expects the application being run to match the name of the executable (which is not the case with the distributed app: It's Minecraft.app, and JavaApplicationStub), so by moving the executable to match the app name, it works. I had to create a shell script to actually exec the executable because I got "Path not found" otherwise.

This seemed to work.

I only put this here because it worked for me. If you do not understand the code block again, please keep in mind you might have to re-download the app (or make a copy first).