Ich versuche, die Kennwortanforderung für den Bildschirmschoner über die Befehlszeile zu aktivieren und zu deaktivieren.
defaults read com.apple.screensaver
zeigt eine Variable askForPassword, die entweder auf 0 oder 1 gesetzt ist, je nachdem, ob ich eine Passwortanforderung in den Systemeinstellungen konfiguriert habe oder nicht.
defaults write com.apple.screensaver askForPassword 1
und
defaults write com.apple.screensaver askForPassword 0
Aktivieren und deaktivieren Sie die Passworteinstellung, oder so dachte ich.
Was ich stattdessen finde, ist, dass die Befehle zwar das Kontrollkästchen in den Systemeinstellungen unter Sicherheit aktivieren und deaktivieren, sich aber überhaupt nicht auf den Bildschirmschoner auswirken.
Wenn ich das Passwort in den Systemeinstellungen aktiviere und es dann mit dem zweiten Standardschreibbefehl deaktiviere, ist das Kontrollkästchen in den Systemeinstellungen deaktiviert, aber der Bildschirmschoner fragt weiterhin nach einem Passwort. Nur das Aktivieren und Deaktivieren des Kontrollkästchens in den Systemeinstellungen kann dieses Verhalten jetzt ändern.
Und wenn ich das Passwort in den Systemeinstellungen deaktiviere und es dann mit dem ersten Standardschreibbefehl aktiviere, ist das Kontrollkästchen in den Systemeinstellungen aktiviert, aber der Bildschirmschoner fragt nicht nach einem Passwort. Nur das Deaktivieren und Aktivieren des Kontrollkästchens in den Systemeinstellungen ändert das Verhalten danach.
Was ist los?
Ich kann mir vorstellen, dass dies eine globale Einstellung ist und ich /Library/Preferences/com.apple.screensaver
anstelle der Benutzerdomäne ändern sollte. Aber warum gibt es in diesem Fall eine Auswirkung auf das Kontrollkästchen Systemeinstellungen?
Wenn Sie nicht gezwungen sind, Standardwerte zu verwenden , können Sie den folgenden Befehl verwenden. Es interagiert mit dem Betriebssystem genauso, als ob Sie die Systemeinstellungen verwenden würden.
GETESTET AUF:
sudo osascript -e 'tell application "System Events" to set require password to wake of security preferences to false'
HINWEIS: Wenn der Befehl innerhalb eines Skripts ausgeführt wird, das Root-Rechte erhalten hat, benötigen Sie das sudo nicht .
osascript -e 'tell application "System Events" to set require password to wake of security preferences to false'
Ich bin auf ein ähnliches Problem gestoßen und habe in diesem Forumsbeitrag eine Lösung von Benutzer Guillaume gefunden . Grundsätzlich müssen Sie den Bildschirmschoner zwingen, die Einstellung für die Kennwortanforderung erneut zu lesen, was Sie mit einem C-Programm tun können:
#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;
}
Und kompilieren Sie dies mit:
cc -o /tmp/anywhereyouwantit/notif notif.c -framework CoreFoundation
Dann rufen Sie dieses Programm sofort nach Ihrem Aufruf aufdefaults write
Macaco
Macaco
Andrew J. Brehm
Andrew J. Brehm
Macaco
JS.