5 votos

Forma más temprana de deshabilitar wifi al inicio de sesión o arranque

Estoy utilizando Catalina, y el sistema operativo siempre activará el wifi al arrancar. He estado investigando métodos para desactivar la conexión wifi cuando inicio sesión, y he creado un archivo .plist:

  Label
  com.username.wifi_off
  ProgramArguments

    /Users/username/.wifi_off.sh

  Nice
  1
  RunAtLoad

  StandardErrorPath
  /tmp/wifi_off.err
  StandardOutPath
  /tmp/wifi_off.out

que se coloca en ~/Library/LaunchAgents, y el archivo .wifi_off.sh es:

#!/bin/sh
networksetup -setairportpower en0 off

¿Es esta la manera más rápida y/o eficiente de desactivar el wifi al iniciar sesión? ¿Cómo se puede extender esto para desactivar el wifi al arrancar, de modo que el wifi se desconecte en la pantalla de inicio de sesión, antes de que alguien haya iniciado sesión?

0 votos

Estoy asumiendo que quieres desactivarlo al arrancar/iniciar sesión, pero aún quieres recordar las redes a las que conectarte en otro momento, ¿correcto? En ese caso, no lo ejecutes como un agente de inicio, sino como un demonio de inicio. apple.stackexchange.com/questions/249446/…

1 votos

También, intenta usar un gancho de cierre de sesión para apagar WiFi cuando el usuario apaga. El poder del WiFi es persistente entre reinicios (mi WiFi en mi iMac está predeterminado en apagado y se mantiene así en cada reinicio)

0 votos

Sí, también estaba pensando que el gancho de cierre de sesión sería una gran idea. Pero para lo primero, ¿puedo simplemente mover mi archivo .plist a /LaunchDaemons, y luego sudo launchctl load ¿verdad? ¿Necesito launchctl unload el anterior en absoluto?

5voto

Joel Puntos 112

Puede que estés preguntando dos cosas diferentes, pero en el último párrafo dijiste:

El objetivo final es evitar que el sistema inicie sesión automáticamente en una red

Evitar que el Sistema Inicie Sesión Automáticamente en una Red:

Creo que la forma de lograrlo es desmarcar (deshabilitar) la función Auto-Conexión para cada nombre de red WiFi/SSID almacenado. Preferencias del Sistema, Red, Avanzado.... Desmarca todas las casillas marcadas en la lista de "Redes Preferidas". enter image description here

También ten en cuenta que hay un par de otras opciones aquí que pueden ser de interés:

  • Puedes desmarcar la opción de "Recordar las redes a las que se ha unido esta computadora"
  • Puedes marcar la casilla de "Requerir autorización de administrador para: Activar o desactivar Wi-Fi.

Para Desconectar la Energía del WiFi al Iniciar el Sistema:

Para desconectar la energía del wifi al iniciar el sistema, puedes usar cron. Es ciertamente más simple que construir un .plist, y se invoca al inicio en lugar de al iniciar sesión. En mis pruebas, sobrevive a una sesión, pero por supuesto podría ser "anulado" por otras configuraciones del sistema -- Su experiencia puede variar. Puede ser reiniciado desde el ícono de WiFi en la barra de menú después de iniciar sesión cuando lo desees. Así es como hacerlo desde la CLI:

crontab -e 

Esto iniciará tu editor de crontab designado, y abrirá tu actual crontab. Si no tienes un crontab (no lo has usado anteriormente), se te pedirá que elijas entre una de las tres opciones de editor predeterminado. Te sugiero que elijas pico o nano. Hecho esto, el crontab predeterminado se abrirá en el editor de tu elección.

Una vez que el editor haya iniciado, haz la siguiente entrada en la primera línea vacía en la "parte inferior" del archivo:

@reboot /usr/sbin/networksetup -setairportpower en0 off

Guarda y cierra el editor, y tu nuevo crontab se vuelve activo. Este comando ahora se ejecutará cada vez que tu sistema arranque, y (sujeto a la excepción mencionada) tu interfaz de WiFi estará "APAGADA" hasta que la enciendas.

0 votos

Entonces esto es muy útil; olvidé esta opción y la usaré. Sin embargo, tienes razón en que mi pregunta original pregunta dos cosas diferentes. Para aclarar, estoy buscando desconectar la energía wifi también al iniciar sesión o al arrancar.

1 votos

@irishwristwatch: Has planteado una pregunta muy interesante. Creo que mi enfoque sería desactivar el "escaneo de red" casi constante que hace el sistema en lugar de apagar la energía. (aquí está la razón) Pero aún no he descubierto cómo hacer eso.

1 votos

@irishwristwatch: En cuanto a tu archivo .plist, mencionaré lo siguiente: 1.) Un 'User Agent' de launchd no deshabilitará en0 hasta que inicies sesión. 2.) Considera la aplicación Launch Control para utilizar launchd; también te permitirá invocar un Agente del Sistema. 3.) Si deseas invocar en el inicio, considera cron con la especificación de programación @reboot. (ver respuesta revisada)

0voto

irishwristwatch Puntos 31

Por lo tanto, ahora estoy usando una combinación de crontab y logouthook:

El crontab:

@reboot /usr/sbin/networksetup -setairportpower en0 off

El gancho de cierre de sesión se generó así:

#!/bin/sh
sudo defaults write com.apple.loginwindow LogoutHook ~/.logouthook
echo '#!/bin/sh\nnetworksetup -setairportpower en0 off' > ~/.logouthook
chmod +x ~/.logouthook

No he encontrado una manera de mostrar siempre el estado del wifi en la pantalla de inicio de sesión, pero parece mostrar conectividad wifi si está conectado a una red, y no mostrar ningún estado en absoluto si no lo está.

Creo que estos dos elementos (crontab y logouthook) en combinación pueden ser una solución completa aquí, pero también probaré con /Library/LaunchAgents globales para que no tenga que repetir ningún procedimiento si quiero que esta nueva característica se aplique automáticamente a cualquier nuevo usuario que se cree.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X