启用/禁用 OS X 屏幕保护程序密码提示

启用/禁用 OS X 屏幕保护程序密码提示

我正在尝试加快在 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 身份运行的。

任何有关此事的帮助或指导都是非常受欢迎的

答案1

您可以killall SystemUIServer(或者,如果您愿意)编译此代码并在运行命令后运行它defaults。它比 killall 命令更温和,尽管它需要安装开发人员工具和 C 编译器。

#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

答案2

嗯,对我来说也没用。我列出了默认设置,发现以下内容:

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

因此我也将尝试改变延迟:

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

它可能会对您有所帮助,但是在即将推出的 OS X 版本上不起作用,即使终止了 SystemUIServer...

相关内容