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.
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 cfprefsd
muestra 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)
.
opensnoop
solo 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 bienPuede 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.
usuario87208