Próbuję włączyć i wyłączyć wymaganie dotyczące hasła wygaszacza ekranu z wiersza polecenia.
defaults read com.apple.screensaver
pokazuje zmienną askForPassword ustawioną na 0 lub 1, w zależności od tego, czy skonfigurowałem wymaganie hasła w Preferencjach systemowych, czy nie.
defaults write com.apple.screensaver askForPassword 1
i
defaults write com.apple.screensaver askForPassword 0
włączyć i wyłączyć ustawienie hasła, a przynajmniej tak myślałem.
Zamiast tego znajduję, że polecenia rzeczywiście zaznaczają i odznaczają pole wyboru w Preferencjach systemowych w obszarze Bezpieczeństwo, ale w ogóle nie wpływają na wygaszacz ekranu.
Jeśli włączę hasło w Preferencjach systemowych, a następnie wyłączę je za pomocą drugiego domyślnego polecenia zapisu, pole wyboru w Preferencjach systemowych nie jest zaznaczone, ale wygaszacz ekranu będzie nadal pytał o hasło. Tylko zaznaczenie i odznaczenie pola wyboru w Preferencjach systemowych może teraz zmienić to zachowanie.
A jeśli wyłączę hasło w Preferencjach systemowych, a następnie włączę je za pomocą pierwszego domyślnego polecenia zapisu, pole wyboru w Preferencjach systemowych zostanie zaznaczone, ale wygaszacz ekranu nie poprosi o hasło. Tylko odznaczenie i zaznaczenie pola wyboru w Preferencjach systemowych zmienia później zachowanie.
Co się dzieje?
Mogę sobie wyobrazić, że jest to ustawienie globalne i powinienem zmodyfikować /Library/Preferences/com.apple.screensaver
zamiast domeny użytkownika. Ale w takim przypadku, dlaczego wpływa na pole wyboru Preferencje systemowe?
źródło
Odpowiedzi:
Jeśli nie musisz używać ustawień domyślnych , możesz użyć następującego polecenia. Współdziała z systemem operacyjnym tak samo, jak w przypadku korzystania z Preferencji systemowych.
TESTOWANE NA:
UWAGA: Jeśli polecenie jest uruchamiane w skrypcie, który ma uprawnienia roota, sudo nie będzie potrzebne .
źródło
Natrafiłem na podobny problem i znalazłem rozwiązanie od użytkownika Guillaume na tym postu na forum . Zasadniczo musisz zmusić wygaszacz ekranu do ponownego odczytania preferencji dotyczącej hasła, co możesz zrobić za pomocą programu w C:
I skompiluj to z:
Następnie wywołaj ten program natychmiast po wezwaniu do
defaults write
źródło