Edición de las preferencias del sistema a través de la terminal

11

Estoy tratando de editar la configuración de preferencias del sistema a través de la línea de comando, pero no puedo encontrar los nombres correctos de las variables.

En Opciones de inicio de sesión en Usuarios y grupos, me gustaría poder cambiar la ventana Mostrar inicio de sesión de la lista de usuarios a 'nombre y contraseña'.
En Fecha y hora, me gustaría saber cómo cambio la hora a un servidor que utilizamos. Habilitar campos en la configuración de Compartir configuración Ahorro de energía

Sería genial si alguien puede ayudarme o señalarme en la dirección correcta, ya que sé que editas las listas de preferencias, pero es saber qué agregar o encontrar las convenciones de nomenclatura preferidas.

Gracias.

Sinergi
fuente
1
¿Logró configurar las opciones de inicio de sesión?

Respuestas:

20

En primer lugar, puede visitar un sitio web que enumera muchas de estas cosas: http://secrets.blacktree.com/

Yo, sin embargo, acabo de tomar una solución de fuerza bruta:

Copie la carpeta de preferencias

$ cp -r /Library/Preferences before

Iniciar Preferencias del sistema. Realice un cambio a través de la GUI. Probablemente sea mejor hacer un cambio a la vez, por ejemplo, cambié "Mostrar ventana de inicio de sesión como:" de "Lista de usuarios" a "Nombre y contraseña". Salga de Preferencias del sistema.

Copie la carpeta Preferencias nuevamente:

$ cp -r /Library/Preferences after

Ver qué archivos cambiaron:

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

Compara las dos versiones. Como son archivos binarios, deberá convertirlos a XML para compararlos. Yo uso un alias para esto:

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

En este punto, hemos localizado la configuración. Confirma que lo tenemos 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

Inicie Preferencias del sistema y confirme que ha cambiado.

Noach
fuente
7

sudo opensnoop -n cfprefsdmuestra a qué listas de propiedades se está accediendo. También se puede simplemente ordenar los archivos de preferencias por fecha de modificación: ls -t {~,}/Library/Preferences/{ByHost,}.

Para las preferencias en el dominio de usuario, también puede ejecutar defaults read > temp, cambiar algunas preferencias y ejecutar diff temp <(defaults read).

Lri
fuente
en macOS 10.12.1, opensnoopsolo imprime mensajes de error; primero dtrace: system integrity protection is on, some features will not be available, luego una lista de mensajes como dtrace: error on enabled probe ID 5 (ID 167: syscall::open:return): invalid user access in action #11 at DIF offset 2; la segunda parte parece funcionar bien
ssc
1

Puede usar AppleScript para controlar muchas de las propiedades de Preferencias del sistema. Consulte https://www.macosxautomation.com/applescript/features/system-prefs.html para ver ejemplos.

Dependiendo de lo que quieras hacer, puedes crear un script para hacer cosas como

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

Use Script Editor.app para ejecutar y depurar código en caso de que las etiquetas de propiedad hayan cambiado en las versiones más recientes de macOS.

marca
fuente