명령 행에서 화면 보호기 비밀번호 요구 사항 사용 안함


11

명령 줄에서 화면 보호기 암호 요구 사항을 활성화 및 비활성화하려고합니다.

defaults read com.apple.screensaver

시스템 환경 설정에서 암호 요구 사항을 구성했는지 여부에 따라 askForPassword 변수를 0 또는 1로 설정합니다.

defaults write com.apple.screensaver askForPassword 1

defaults write com.apple.screensaver askForPassword 0

암호 설정을 사용하거나 사용하지 않도록 설정했습니다.

내가 찾은 것은 실제로 명령이 보안 아래의 시스템 환경 설정에서 확인란을 선택 및 선택 취소하지만 화면 보호기에 전혀 영향을 미치지 않는다는 것입니다.

시스템 환경 설정에서 암호를 활성화 한 다음 두 번째 기본 쓰기 명령을 사용하여 비활성화하면 시스템 환경 설정의 확인란이 선택 해제되지만 화면 보호기는 여전히 암호를 묻습니다. 시스템 환경 설정에서 확인란을 선택하거나 선택 취소하면이 동작을 변경할 수 있습니다.

시스템 환경 설정에서 암호를 비활성화 한 다음 첫 번째 기본 쓰기 명령을 사용하여 암호를 활성화하면 시스템 환경 설정의 확인란이 선택되지만 화면 보호기는 암호를 요구하지 않습니다. 시스템 환경 설정에서 확인란을 선택 취소하고 확인 만하면 동작이 변경됩니다.

무슨 일이야?

이것이 전역 설정이라고 생각할 수 /Library/Preferences/com.apple.screensaver있으며 사용자 도메인 대신 수정해야 합니다. 그러나이 경우 시스템 환경 설정 확인란에 영향을주는 이유는 무엇입니까?


이것은 약간 어리둥절합니다. '암호 요청'설정을 전환하면서 파일 읽기 / 쓰기를 보았습니다. 내가 수정 된 것을 볼 수있는 유일한 파일은 com.apple.screensaver입니다. GUI 에서이 버튼을 토글하고 plist 파일에 쓸 때 메시지가 일부 서비스로 전송되는 것 같습니다. 시스템을 재부팅하거나 로그 아웃 / 로그인하면 해당 서비스에서 파일을 다시 읽게되어 원하는대로 변경할 수 있다는 점을 알고 싶습니다.
macaco

1
내가 맞았 어! plist 파일을 변경 한 후 로그 아웃했다가 다시 로그인하면 설정 변경 사항이 반영됩니다. 따라서 '암호 요청'동작을 제어하는 ​​서비스를 찾아 plist를 수정 한 후 재설정 / 재로드해야하는 것처럼 보입니다.
macaco

Apple이 자체 plist 메커니즘을 손상시키는 것처럼 보입니다.
Andrew J. Brehm 10

고마워. 누군가가 그것을 알고 여기에 대답하기를 바랍니다.
Andrew J. Brehm

1
시스템 환경 설정에서 작성한 후이 파일에 액세스하는 것으로 보이는 '로그인 창'프로세스입니다. 말이됩니다. 불행히도, loginwindow 프로세스를 종료하면 강제로 로그 아웃됩니다. 파고 계속!
macaco

답변:


7

강제로 기본값을 쓰지 않으면 다음 명령을 사용할 수 있습니다. 시스템 환경 설정을 사용하는 것처럼 OS와 상호 작용합니다.

시험 :

  • 10.5.x
  • 10.6.x
  • 10.7.x
  • 10.8.x
  • 10.9.x

sudo osascript -e 'tell application "System Events" to set require password to wake of security preferences to false'

참고 : 루트 권한이 부여 된 스크립트 내에서 명령을 실행중인 경우 sudo 가 필요하지 않습니다 .

osascript -e 'tell application "System Events" to set require password to wake of security preferences to false'

좋은! 커맨드 라인 AppleScript는 종종 이런 종류의 문제에 대한 좋은 해결책입니다.
다니엘

@DanielLawson 감사합니다, 현재 10.7에서 작업하고 있습니까? 나는 일반적으로 명령을 테스트 한 OS를 게시하고 싶지만 불행히도 오늘 아침에 오래된 Snow Leopard 시스템에 갇혀 오늘 후반까지 10.7 시스템에 액세스 할 수 없습니다. 나는 그것이 10.6.x에서 작동하고 10.7에서 실패하는 것을 싫어합니다. .. 어쨌든, 다시 한 번 감사드립니다 :-)
E1Suave

1
OS X Server의 10.7.5에서 이것을 테스트했지만 작동하지 않습니다. 화면 보호기는 여전히 암호를 요구하며 기본 설정은 선택되어 있지 않습니다.

1
이것은 10.11 (El Capitan)에서 작동합니다. 이 글에서 찾았습니다 ( github.com/dustinrue/ControlPlane/issues/421 )
GTF

1
High Sierra Mac에서는 "osascript"방법이 작동하지 않습니다. ~ / Library / Preferences / com.apple.screensaver.plist 파일은 High Sierra Mac의 GUI 스위치에 영향을받지 않는 것으로 보입니다.
Kent

3

비슷한 문제가 발생 하여이 포럼 게시물 에서 Guillaume 사용자의 솔루션을 찾았 습니다 . 기본적으로 화면 보호기는 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;
}

그리고 이것을 다음과 같이 컴파일하십시오 :

cc -o /tmp/anywhereyouwantit/notif notif.c -framework CoreFoundation

그런 다음 전화를 한 직후이 프로그램을 호출하십시오. defaults write


업데이트 : High Sierra (10.13.6)에서 컴파일되지만 다음 오류를보고합니다. "ld : 경고 : 텍스트 기반 스텁 파일 /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation.tbd 및 라이브러리 파일 / System / Library /Frameworks//CoreFoundation.framework/CoreFoundation이 동기화되지 않았습니다. 링크를 위해 라이브러리 파일로 폴백합니다. " 실행될 때 세그먼테이션 결함으로 실패합니다.
TJ Luoma
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.