Notificar al sistema que se cambiaron las preferencias

1

Deshabilité SIP ( ¿Cómo deshabilito la protección de integridad del sistema (SIP) AKA" rootless "en OS X 10.11, El Capitán? ) y comencé a editar el archivo /Library/Preferences/SystemConfiguration/preferences.plist

Edité con éxito las entradas HTTPProxy, HTTPPort, HTTPEnable y guardo el archivo. Luego verifiqué mi dirección IP en la web, y no cambia. El archivo está configurado correctamente, pero el sistema no sabe que cambió y, por lo tanto, utiliza la configuración anterior. Al cambiar la configuración manualmente, al presionar Apply en la pestaña Red se notifica al sistema que preferences.plist ha cambiado y que debe usar la nueva configuración. Lo mismo ocurre con el encendido y apagado del wifi. Cambié el archivo, verifiqué la IP (es lo mismo), apago y enciendo el wifi, verifiqué la IP y ahora ha cambiado.

¿Cómo puedo activar ese evento de notificar el sistema de cambios programáticamente en una Mac?

    
pregunta sanjihan 24.03.2016 - 22:09

2 respuestas

1

Esta es la forma incorrecta de ajustar la configuración de red en OS X. La red es administrada por configd, que lee su configuración desde /Library/Preferences/SystemConfiguration/preferences.plist en el inicio. Los cambios se deben realizar a través de configd, para que pueda actualizar su estado en vivo, la configuración real de la interfaz de red y el archivo de preferencias.

Conozco tres formas de hacerlo: a través del panel Red en Preferencias del sistema, con el comando networksetup y con el comando scutil . scutil está desordenado, así que no lo recomiendo; Afortunadamente, networksetup es fácil de usar. Algo como esto debería funcionar:

sudo networksetup -setwebproxy Ethernet proxyserver.example.com 80 off

Tenga en cuenta que "Ethernet" es el nombre fácil de usar del servicio de red (/ interfaz); use networksetup -listallnetworkservices para una lista. Además, el argumento "off" significa que la autenticación proxy está desactivada. Para obtener más información, consulte la networksetup man page .

Por cierto, desactiva SIP. No es necesario que lo desactive para cambiar la configuración de red.

    
respondido por el Gordon Davisson 25.03.2016 - 02:08
0

Su pregunta necesita alguna edición y aclaración.

Lo que creo que estás preguntando es cómo obligar a OS X a volver a cargar datos después de editar un archivo plist. Hay dos métodos para hacer esto.

OS X usa un demonio de almacenamiento en caché para las preferencias, cfprefsd. Simplemente puede guardar su archivo plist, luego hacer sudo killall cfprefds . Se reiniciará automáticamente y debería cargar sus cambios.

La forma recomendada de forzar cambios es con el comando por defecto , que informa al demonio de los cambios. Por ejemplo

# Reveal IP address, hostname, OS version, etc. when clicking the clock
# in the login window
sudo defaults write /Library/Preferences/com.apple.loginwindow AdminHostInfo HostName
    
respondido por el Hefewe1zen 25.03.2016 - 01:15

Lea otras preguntas en las etiquetas