1

Я пытаюсь ускорить включение и отключение функции безопасности / пароля в OS X. В данном случае, в частности, Mountain Lion 10.8.4.

В настоящее время у меня есть горячий угол (плюс сочетание клавиш Ctrl + Shift + EJECT) для запуска заставки на моем Mac. Это, в свою очередь, требует пароль сразу после запуска заставки. Я использую эту функцию при работе в среде, где я хочу защитить свой активный Mac в общей ситуации.

Я пытаюсь включить из терминала быстрый способ включить или отключить "Требовать пароль X после запуска режима сна или заставки".

я пытался

defaults -currentHost write com.apple.screensaver askForPassword -int 0
defaults -currentHost write com.apple.screensaver askForPassword -int 1

который, кажется, успешно обновляет /Users/USER/Library/Preferences/com.apple.screensaver.plist.

Однако при обновлении вручную или использовании терминала для обновления

askForPassword

кажется, что это игнорируется, поэтому ничего не меняется функционально.

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

Любая помощь или руководство по этому вопросу приветствуются

2 ответа2

1

Ну, это не сработало и для меня. Я перечислил значения по умолчанию и нашел следующее:

$ defaults read com.apple.screensaver
{
    askForPassword = 1;
    askForPasswordDelay = 60;
}

Поэтому я бы попробовал изменить задержку:

$ defaults write com.apple.screensaver askForPasswordDelay -int 1

Это может помочь вам, но не работает на подходящей версии OS X, даже с убийством SystemUIServer ...

0

Вы можете killall SystemUIServer или, если хотите, вы можете скомпилировать этот код и запустить его после запуска команды по defaults . Это менее радикально, чем команда killall, хотя требует установки инструментов разработчика и компилятора Си.

#include <CoreFoundation/CoreFoundation.h>

int main(int argc, char ** argv) {
  CFMessagePortRef port = CFMessagePortCreateRemote(NULL, CFSTR("com.apple.loginwindow.notify"));
  CFMessagePortSendRequest(port, 500, 0, 0, 0, 0, 0);
  CFRelease(port);
  return 0;
}

(источник: http://hintsforums.macworld.com/archive/index.php/t-49718.html )

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .