Ekran koruyucu şifre gereksinimini komut satırından devre dışı bırak


11

Komut satırından ekran koruyucu parola gereksinimini etkinleştirmeye ve devre dışı bırakmaya çalışıyorum.

defaults read com.apple.screensaver

Sistem Tercihleri'nde bir şifre gereksinimi yapılandırıp yapılandırmamaya bağlı olarak 0 veya 1 olarak ayarlanmış bir askForPassword değişkenini gösterir.

defaults write com.apple.screensaver askForPassword 1

ve

defaults write com.apple.screensaver askForPassword 0

şifre ayarını etkinleştirin ve devre dışı bırakın, ya da düşündüm.

Bunun yerine bulduğum, komutların Güvenlik altındaki Sistem Tercihleri'ndeki onay kutusunu gerçekten işaretlemesi ve işaretini kaldırması, ancak ekran koruyucuyu hiç etkilememesi.

Sistem Tercihleri'nde parolayı etkinleştirir ve ardından ikinci varsayılan yazma komutunu kullanarak parolayı devre dışı bırakırsam, Sistem Tercihleri'ndeki onay kutusunun işareti kaldırılır, ancak ekran koruyucu yine de parola ister. Yalnızca Sistem Tercihleri'ndeki onay kutusunun işaretlenmesi ve işaretinin kaldırılması bu davranışı şimdi değiştirebilir.

Ve Sistem Tercihleri'nde parolayı devre dışı bırakır ve ilk varsayılan yazma komutunu kullanarak etkinleştirirsem, Sistem Tercihleri'ndeki onay kutusu işaretlenir, ancak ekran koruyucu bir parola istemez. Yalnızca Sistem Tercihleri'ndeki onay kutusunun işaretinin kaldırılması ve işaretlenmesi davranışı daha sonra değiştirir.

Neler oluyor?

Bunun genel bir ayar olduğunu hayal edebiliyorum /Library/Preferences/com.apple.screensaverve kullanıcı etki alanı yerine değişiklik yapmalıyım . Ancak bu durumda, Sistem Tercihleri ​​onay kutusu üzerinde neden bir etki vardır?


Bu biraz şaşırtıcı. 'Şifre sor' ayarını değiştirirken dosya okuma / yazma izledim. Değiştirildiğini görebildiğim tek dosya com.apple.screensaver. Ben bu düğme GUI içinde geçiş yanı sıra plist dosyasına yazma bazı hizmete bir mesaj gönderildiğini tahmin ediyorum. Sistemi yeniden başlatmanın veya oturumu kapatmanın / oturumu açmanın dosyanın söz konusu hizmet tarafından yeniden okunmasına ve istenen değişikliği yapmasına neden olabileceğini iddia ediyorum.
macaco

1
Haklıydım! Plist dosyasını değiştirdikten sonra oturumu kapatıp yeniden açmak, ayarlardaki değişikliğin yansıtılmasına neden olur. Yani, 'şifre sor' davranışını hangi hizmetin kontrol ettiğini bulmanız ve plist'i değiştirdikten sonra sıfırlamanız / yeniden yüklemeniz gerekiyor gibi görünüyor.
macaco

Apple kendi plist mekanizmalarını zayıflatıyor gibi görünüyor.
Andrew J.Brehm

Ta. Umarım birisi bunu bilir ve burada cevap verir.
Andrew J.Brehm

1
Sistem Tercihleri ​​tarafından yazıldıktan sonra bu dosyaya erişiyor gibi görünen 'loginwindow' işlemi. Bu mantıklı. Ne yazık ki, loginwindow işlemini öldürmek zorla oturumunuzu kapatır. Kazmaya devam et!
macaco

Yanıtlar:


7

Varsayılanları yazmak zorunda değilseniz, aşağıdaki komutu kullanabilirsiniz. İşletim Sistemi ile, Sistem Tercihleri'ni kullandığınız gibi etkileşime girer.

TEST EDİLENLER:

  • 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'

NOT: Komut kök ayrıcalıkları verilen bir komut dosyasının içinde çalıştırılıyorsa sudo'ya ihtiyacınız yoktur .

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

Güzel! Komut satırı AppleScript genellikle bu tür bir soruna iyi bir çözümdür.
Daniel

@DanielLawson Teşekkürler, şu anda 10.7 üzerinde mi çalışıyorsunuz? Genellikle hangi işletim sistemlerini komutlarımı test ettiğimi göndermek isterim ve maalesef bu sabah eski bir Snow Leopard makinesiyle sıkışıp kaldım ve 10.7 makinesine bugüne kadar erişemeyeceğim. Ben 10.6.x üzerinde çalışmak için nefret ediyorum ve 10.7 başarısız: :( Ancak, bu plists çok benzer olarak işlev görür eminim.10.5's screensaver.plist farklı ve bazı tweaking gerekli olacağını biliyorum Her neyse, tekrar teşekkürler. :–)
E1Suave

1
Ben OS X Server üzerinde 10.7.5 üzerinde test ettik ve çalışmıyor. Ekran koruyucu yine de bir parola gerektirir ve tercihin işareti kaldırılmaz.

1
Bu benim için 10.11 (El Capitan) üzerinde çalışıyor. Bu konudan buldum ( github.com/dustinrue/ControlPlane/issues/421 )
GTF

1
"Ossascript" yöntemi High Sierra Mac'imde çalışmıyor. ~ / Library / Preferences / com.apple.screensaver.plist dosyasının High Sierra Mac bilgisayarımdaki GUI anahtarından etkilenmediği görülüyor.
Kent

3

Benzer bir sorunla karşılaştım ve bu forum gönderisinde Guillaume kullanıcısından bir çözüm buldum . Temel olarak, ekran koruyucuyu bir C programı ile yapabileceğiniz şifre gereksinimi tercihini yeniden okumaya zorlamanız gerekir:

#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;
}

Ve bunu aşağıdakilerle derleyin:

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

Ardından, bu programı defaults write


Güncelleme: High Sierra'da (10.13.6) bu derlenir, ancak şu hatayı bildirir: "ld: uyarı: metin tabanlı saplama dosyası /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation.tbd ve kütüphane dosyası / System / Library /Frameworks//CoreFoundation.framework/CoreFoundation senkronize değil. Bağlanmak için kütüphane dosyasına geri dönme. " Çalıştırıldığında bir segmentasyon hatası ile başarısız oluyor.
TJ Luoma
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.