Родительский контроль «Всегда разрешать» не работает

Я включил родительский контроль на MacBook Pro моего сына (OS X 10.8.1, Mountain Lion) и ограничил приложения, которые может использовать его учетная запись. Все отлично работает за исключением Майнкрафта (конечно самое главное для него приложение). Minecraft помечен как приложение, которое ему разрешено использовать в настройках родительского контроля.

Когда я пытаюсь запустить Minecraft под его учетной записью, появляется сообщение о том, что ему не разрешено запускать его, предоставляя следующие три варианта:

  • Всегда позволяют
  • Разрешить один раз
  • Отмена

При нажатии Allow One Timeя должен ввести имя пользователя и пароль учетной записи администратора, и игра запускается без проблем. Но когда я нажимаю Always Allow, он также запрашивает учетную запись администратора, но затем снова появляется то же сообщение. Я проверил, что использую правильное имя пользователя и пароль учетной записи администратора, но игра по-прежнему отказывается запускать игру.

Когда я отключаю родительский контроль, все работает, но когда я включаю его снова, он не работает, несмотря на наличие Minecraft в списке разрешенных приложений для его учетной записи.

В Consoleприложении я вижу следующее странное сообщение об ошибке всякий раз, когда это происходит:

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

Кто-нибудь еще сталкивался с этим или знает, как это исправить?

Я предполагаю, что это потому, что Minecraft — это всего лишь приложение-оболочка, и оно активирует другое приложение (скорее всего, банку).
Хороший вопрос - я знаю, что он использует Java внутри. Я не видел исполняемый файл Java в списке приложений, которые я могу разрешить/запретить. Но это не объясняет странную причину ошибки в журналах или почему это работает с опцией «Разрешить один раз».

Ответы (4)

Это дало мне достаточно информации, чтобы исправить программу запуска Minecraft. Предыдущий ответ работает, но имеет уродливое название меню, из-за которого мой сын будет приставать ко мне. Поэтому вместо этого я исправил настройку Minecraft.app.

Вкратце, в терминале:

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

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

По сути, может показаться, что ParentalControls ожидает, что запускаемое приложение будет соответствовать имени исполняемого файла (что не относится к распределенному приложению: это Minecraft.app и JavaApplicationStub), поэтому, перемещая исполняемый файл в соответствии с именем приложения, оно работает. Мне пришлось создать сценарий оболочки, чтобы фактически выполнить исполняемый файл, потому что в противном случае я получил «Путь не найден».

Это, казалось, сработало.

Я разместил это здесь только потому, что это сработало для меня. Если вы снова не понимаете блок кода, имейте в виду, что вам, возможно, придется повторно загрузить приложение (или сначала сделать копию).

Я разместил тот же вопрос на форумах поддержки Apple здесь - похоже, у многих людей такая же проблема, но пока нет ответов.

Между тем, я работал над этим, и мне удалось заставить его работать на MacBook Pro моего сына. Вот что я сделал:

Я добавил сценарий оболочки MyMinecraftсо следующим содержимым:

#!/bin/bash
java -jar -Xms512m -Xmx1024m /Applications/Minecraft.app/Contents/Resources/Java/MinecraftLauncher.jar

После сохранения этого файла я сделал его исполняемым (либо через Finder Show Info , либо с помощью chmod +x MyMinecraftтерминала) и попытался запустить его из учетной записи моего сына. Он работал нормально и запустил Minecraft. Все идет нормально.

Чтобы сделать его немного красивее, я создал настоящее приложение для Mac из скрипта — для этого есть несколько вариантов:

  1. Утконос: http://sveinbjorn.org/platypus
  2. Создайте следующую структуру каталогов в каталоге приложения пользователя : MyMinecraft.app/Contents/MacOSи переместите MyMinecraftтуда скрипт. Теперь вы можете добавить оригинальный значок Minecraft через диалоговое окно « Показать информацию » в Finder.

Двойной щелчок по значку MyMinecraft теперь должен запускать Minecraft.

Я использовал это решение некоторое время, пока не узнал, что это проблема с разрешениями, а не с Java. Пожалуйста, прочитайте мой ответ для получения дополнительной информации.

Когда вы используете /Applications/Utilities/Console.app для поиска ошибок и получаете:

Job failed to exec(3) for weird reason: 13

... обычно это проблема с разрешениями. Симптом заключается в том, что вы нажмете на приложение, и оно вообще не запустится. Вам нужно будет сделать исполняемый двоичный файл приложения для текущего пользователя.

Я делаю это, открывая /Applications/Utilities/Terminal.app и выполняя следующую команду:

chmod u+x <Application.app>/Contents/MacOS/<application binary>

<Application.app>необходимо изменить на местоположение приложения и <application binary>на имя двоичного файла.

Для Minecraft, если он находится в корневой /Applicationsпапке, команда будет такой:

chmod u+x /Applications/Minecraft.app/Contents/MacOS/JavaApplicationStub

Если он находится в /Users/jsmith/Applications, где jsmithбудет ваше имя пользователя на вашем Mac, команда будет выглядеть так:

chmod u+x /Users/jsmith/Applications/Minecraft.app/Contents/MacOS/JavaApplicationStub

chmodэто команда для изменения режимов файлов или списков контроля доступа. Вы можете прочитать руководство chmod, выполнив команду: man chmodВ этом случае мы разрешаем выполнение файла текущим пользователем. Так u+xчто означает «пользователь добавляет разрешение на выполнение». Если вы хотите сделать исполняемый файл доступным для всех пользователей, вы должны изменить u+xприведенные выше команды на a+x.

Надеюсь, это поможет.

Ответ на эту проблему связан с датой. Если вы измените системную дату на что-то до 2008 года, это вызовет эту проблему.

Сбросьте дату - затем «Всегда разрешать» приложение и вуаля!