Eliminar Little Snitch a través de un script [cerrado]

Quiero poder desinstalar Little Snitch sobre Apple Remote Desktop. Encontré el siguiente script aquí: http://fromtheadmin.com/kill-and-remove-little-snitch-application-via-ard-script/

Sin embargo, cuando ejecuto el script localmente en una máquina de prueba con Little Snitch ejecutándose, la Terminal devuelve "No se encontraron procesos coincidentes que le pertenezcan". Puedo ver los procesos de Little Snitch UIAgent y Little Snitch Network Monitor en Activity Monitor ejecutándose en la misma cuenta desde la que se ejecuta el script.

¿Algunas ideas?

#!/bin/sh
NetworkMonitor="Little Snitch Network Monitor"
UIAgent="Little Snitch UIAgent"
File="/Library/LaunchAgents/at.obdev.LittleSnitchNetworkMonitor.plist"

#remove Little Snitch files and User Preferences

if [ -f $File ] ; then

#Kill Little Snitch Processes
killall $NetworkMonitor
killall $UIAgent

rm -R /Library/Application\ Support/Objective\ Development/
rm -R /Library/LaunchAgents/at.obdev.LittleSnitchNetworkMonitor.plist
rm -R /Library/LaunchAgents/at.obdev.LittleSnitchUIAgent.plist
rm -R /Library/LaunchDaemons/at.obdev.littlesnitchd.plist
rm -R /Library/Little\ Snitch/*
rm -R /Library/Logs/LittleSnitchDaemon.log
rm -R /System/Library/Extensions/LittleSnitch.kext
rm -R "/Applications/Little Snitch Configuration.app"

usr/sbin/jamf displayMessage -message "Computer is shutting down"

sleep 10

reboot -q

exit 0

else

exit 0

fi

Gracias.

Después de ejecutar y reiniciar, ¿se ha ido Little Snitch? De hecho, ¿cómo los ves en el monitor de actividad después de correr?
No llega al reinicio, sino directamente a: No se encontraron procesos coincidentes que le pertenezcan.
Siento que tengo que preguntar: ¿en qué situación le gustaría eliminar LS a través del escritorio remoto? ¿Qué motivación existe para interferir con la seguridad en una máquina de eliminación?
Administrar máquinas en una empresa donde los usuarios han instalado LS.
Poniendo esto en espera. Necesita una edición para explicar si jamf está ejecutando el script y qué versión de jamf y LS están en juego. Lo que funcionó en 2016 podría no ser apropiado en 2017 y no es muy difícil saber cuál es el problema por ahora. No es necesario eliminar esto, solo que necesita limpieza para permitir más respuestas.

Respuestas (3)

Hay varios problemas con ese script:

  1. Variables de cadena desnuda con espacios en blanco incrustados : coloque "" alrededor de los argumentos de eliminación.
  2. Overkill : si va a eliminar el software y reiniciar, no hay necesidad de eliminar los procesos. Existe el riesgo con LS de que pueda disparar su propia sesión (y secuencia de comandos) si eliminar los procesos de LS genera fallas en la red. Si cree que necesita eliminar los procesos que actúan como guardianes del tráfico de la red, debe asegurarse de que su secuencia de comandos no esté sujeta al manejo normal de bloqueos (consulte las páginas del manual para conocer las nohupformas batchde hacerlo)
  3. Underkill : si está comprometido a matar los componentes activos de LS antes de reiniciar para estar seguro (es decir, como si fuera autoprotector), también debe eliminar el proceso Little Snitch Daemon y descargar la extensión del kernel. También hay registros, cachés, preferencias y archivos de soporte en los árboles de biblioteca específicos del usuario.
  4. No se ejecuta como root : matar a Little Snitch Daemon, descargar el kext, eliminar la mayoría (si no todos) de los componentes de todo el sistema, eliminar los archivos de soporte específicos del usuario para múltiples usuarios y reiniciar todo requiere root.
  5. Corriendoreboot -q : No hagas eso. Es más seguro en MacOS moderno de lo que ha sido históricamente, pero aún puede ser un problema. Es mejor usar shutdown -r +1 "Rebooting for software change"lo que da un período de gracia de un minuto, publica ese mensaje en cualquier shell interactivo y usa los mecanismos de lanzamiento adecuados para cerrar todo. Si quiere ser menos cortés, use "ahora" y/o ningún mensaje.

ALERTA : esta respuesta ha sido probada y aparentemente no funciona. Sin embargo, dejo la respuesta aquí para ayudar a otros a diagnosticar el problema.

Cuando ejecuta la secuencia de comandos, $NetworkMonitorse convierte Little Snitch Network Monitoren lugar de la requerida "Little Snitch Network Monitor"(para hacer frente a los espacios).

Cambiaría las primeras tres líneas de su código a:

#!/bin/sh 
NetworkMonitor="\"Little Snitch Network Monitor\""
UIAgent="\"Little Snitch UIAgent\""

Creo que eso podría solucionar tu problema. Si no, házmelo saber.

Acabo de intentar eso, pero obtengo el mismo resultado. La salida de la Terminal es la siguiente:TestMac:~ TestUser$ sh /Users/TestUser/Desktop/LS\ Script\ Test/LS.sh No matching processes belonging to you were found No matching processes belonging to you were found override rw-r--r-- root/wheel for /Library/Application Support/Objective Development//Little Snitch/.lsd?
¿Qué tal intentar omitir el uso de las variables ( $UIAgenty $NetworkMonitor) y colocar los nombres de los procesos directamente con los killallcomandos (entre comillas, todavía).
Acabo de intentar ejecutar el script original como root sobre ARD y parece haber funcionado (sin ninguna modificación). Lo probaré más, pero es posible que solo deba ejecutarse como root. Volveré a publicar más tarde.

Deberá iniciar sesión como usuario administrativo y ejecutar el script como usuario raíz escribiendo "sudo" delante de sus comandos:

sudo /path/to/your/script.sh