Edycja preferencji systemowych za pomocą terminala

11

Chcę edytować ustawienia preferencji systemowych za pomocą wiersza polecenia, ale przez całe życie nie mogę znaleźć poprawnych nazw zmiennych.

W Opcjach logowania w sekcji Użytkownicy i grupy chciałbym móc zmienić okno logowania Wyświetl z listy użytkowników na „imię i hasło”.
W Date & Time chciałbym wiedzieć, w jaki sposób zmieniam czas na serwer, którego używamy. Włącz pola w Ustawieniach udostępniania Ustawienia oszczędzania energii

Byłoby wspaniale, gdyby ktoś mógł mi pomóc lub skierować mnie we właściwym kierunku, ponieważ wiem, że edytujesz listę preferencji, ale wie, co dodać lub znaleźć preferowane konwencje nazewnictwa.

Dzięki.

Sinergi
źródło
1
Czy udało Ci się skonfigurować opcje logowania?

Odpowiedzi:

20

Po pierwsze, możesz sprawdzić stronę internetową, która zawiera wiele z tych rzeczy: http://secrets.blacktree.com/

Ja jednak właśnie wybrałem rozwiązanie brutalnej siły:

Skopiuj folder Preferencje

$ cp -r /Library/Preferences before

Uruchom Preferencje systemowe. Dokonaj zmiany za pomocą GUI. Prawdopodobnie najlepiej wykonać jedną zmianę naraz, np. Zmieniłem „Wyświetl okno logowania jako:” z „Listy użytkowników” na „Nazwę i hasło”. Zamknij Preferencje systemowe.

Skopiuj ponownie folder Preferencje:

$ cp -r /Library/Preferences after

Sprawdź, które pliki uległy zmianie:

$ diff -ur before after
Binary files before/Preferences/com.apple.loginwindow.plist and after/Preferences/com.apple.loginwindow.plist differ

Porównaj dwie wersje. Ponieważ są to pliki binarne, musisz je przekonwertować do formatu XML w celu porównania. Używam do tego aliasu:

$ alias plist='plutil -convert xml1 -o /dev/stdout'
$ diff -u <(plist before/Preferences/com.apple.loginwindow.plist) <(plist after/Preferences/com.apple.loginwindow.plist)
--- /dev/fd/63  2013-01-23 18:20:29.000000000 +0200
+++ /dev/fd/62  2013-01-23 18:20:29.000000000 +0200
@@ -9,7 +9,7 @@
    <key>RetriesUntilHint</key>
    <integer>3</integer>
    <key>SHOWFULLNAME</key>
-   <false/>
+   <true/>
    <key>lastUser</key>
    <string>loggedIn</string>
    <key>lastUserName</key>

W tym momencie zlokalizowaliśmy ustawienie. Potwierdź, że mamy to defaults:

$ defaults read /Library/Preferences/com.apple.loginwindow SHOWFULLNAME
1
$ sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWFULLNAME -bool false
$ defaults read /Library/Preferences/com.apple.loginwindow SHOWFULLNAME
0

Uruchom Preferencje systemowe i potwierdź zmianę.

Noach
źródło
7

sudo opensnoop -n cfprefsdpokazuje, które listy właściwości są dostępne. Można też po prostu posortować pliki preferencjami, data modyfikacji: ls -t {~,}/Library/Preferences/{ByHost,}.

W przypadku preferencji w domenie użytkownika możesz także uruchomić defaults read > temp, zmienić niektóre preferencje i uruchomić diff temp <(defaults read).

Lri
źródło
w systemie macOS 10.12.1, opensnooppo prostu drukuje komunikaty o błędach; najpierw dtrace: system integrity protection is on, some features will not be availablelista wiadomości takich jak dtrace: error on enabled probe ID 5 (ID 167: syscall::open:return): invalid user access in action #11 at DIF offset 2; druga część wydaje się działać dobrze
ssc
1

Za pomocą AppleScript można kontrolować wiele właściwości Preferencji systemowych. Przykłady można znaleźć na https://www.macosxautomation.com/applescript/features/system-prefs.html .

W zależności od tego, co chcesz zrobić, możesz utworzyć skrypt do wykonywania takich czynności

$ set-setting "dock preferences" "autohide:true, magnification:false"

Użyj Script Editor.app do uruchamiania i debugowania kodu na wypadek zmiany etykiet właściwości w nowszych wersjach macOS.

znak
źródło