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

Estoy buscando editar la configuración de preferencias del sistema a través de la línea de comando, pero por mi vida 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 de 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 en un servidor que usamos. Habilitar campos en la configuración de ahorro de energía de configuración compartida

Sería genial si alguien pudiera ayudarme o indicarme la dirección correcta, ya que sé que edita las preferencias .plists, pero es saber qué agregar o encontrar las convenciones de nomenclatura preferidas.

Gracias.

¿Conseguiste configurar las opciones de inicio de sesión?

Respuestas (3)

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

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

Copie la carpeta de Preferencias

$ cp -r /Library/Preferences before

Inicie 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 de nuevo:

$ 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. Dado que 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 el escenario. Confirmar 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 cambió.

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

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

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

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 quiera hacer, puede crear un script para hacer cosas como

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

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