Modifica delle preferenze di sistema tramite terminale


11

Sto cercando di modificare le impostazioni delle preferenze di sistema tramite la riga di comando ma non riesco a trovare i nomi corretti delle variabili per tutta la vita.

In Opzioni di accesso in Utenti e gruppi, vorrei essere in grado di modificare la finestra Visualizza accesso dall'elenco di utenti in "nome e password".
In Data e ora, vorrei sapere come cambio l'ora in un server che utilizziamo. Abilita i campi nelle impostazioni di Condivisione Risparmio energia

Sarebbe bello se qualcuno mi potesse aiutare o indicarmi la giusta direzione poiché so che modificate le preferenze .plists ma è sapere cosa aggiungere o trovare le convenzioni di denominazione preferite.

Grazie.


1
Sei riuscito a configurare le opzioni di accesso?

Risposte:


20

Prima di tutto, puoi visitare un sito Web che elenca molte di queste cose: http://secrets.blacktree.com/

Tuttavia, ho appena preso una soluzione a forza bruta:

Copia la cartella Preferenze

$ cp -r /Library/Preferences before

Avvia Preferenze di Sistema. Apporta una modifica tramite la GUI. Probabilmente è meglio fare una modifica alla volta, ad esempio ho cambiato "Visualizza la finestra di accesso come:" da "Elenco di utenti" a "Nome e password". Esci dalle Preferenze di Sistema.

Copia di nuovo la cartella Preferenze:

$ cp -r /Library/Preferences after

Vedi quali file sono cambiati:

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

Confronta le due versioni. Dal momento che sono file binari, dovrai confrontarli in XML. Uso un alias per questo:

$ 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>

A questo punto abbiamo individuato l'impostazione. Conferma ce l'abbiamo con 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

Avvia Preferenze di Sistema e conferma che è cambiato.


7

sudo opensnoop -n cfprefsdmostra a quali elenchi di proprietà si accede. È anche possibile ordinare i file di preferenza per data di modifica: ls -t {~,}/Library/Preferences/{ByHost,}.

Per le preferenze nel dominio utente, è anche possibile eseguire defaults read > temp, modificare alcune preferenze ed eseguire diff temp <(defaults read).


su macOS 10.12.1, opensnoopstampa solo messaggi di errore; prima dtrace: system integrity protection is on, some features will not be available, poi un elenco di messaggi come dtrace: error on enabled probe ID 5 (ID 167: syscall::open:return): invalid user access in action #11 at DIF offset 2; la seconda parte sembra funzionare bene
ssc

1

Puoi utilizzare AppleScript per controllare molte delle proprietà delle Preferenze di Sistema. Vedi https://www.macosxautomation.com/applescript/features/system-prefs.html per esempi.

A seconda di cosa vuoi fare, puoi creare uno script per fare cose del genere

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

Utilizzare Script Editor.app per eseguire ed eseguire il debug del codice nel caso in cui le etichette delle proprietà siano cambiate nelle versioni macOS più recenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.