7 votos

¿Por qué una aplicación puede crear demonios sobre la marcha sin permisos de sudo y cómo detenerlo?

Primero, vengo de Linux, así que hay muchas cosas que me confunden, como los daemons.

Instalé VOX.app y tiene algún tipo de agentes y procesos relacionados con la nube que se pueden iniciar automáticamente. No hay opción en la interfaz de usuario de VOX que los pueda desactivar. Intenté lo siguiente para eliminar esos daemons:

launchctl remove com.coppertino.VOXCloud
launchctl remove com.coppertino.VOXAgent

Los comandos anteriores ya son extraños porque no necesité utilizar sudo. Lo más extraño es que lo que hice aparentemente es inútil, ya que cada vez que inicio VOX.app, puede crearlos una y otra vez. ¡Esto es una locura!

Si este es el modelo de seguridad de macOS, ¿cómo puedo entender las cosas y tal vez controlar esto?

0 votos

Hay numerosas preguntas aquí. Este sitio funciona mejor si haces una pregunta.

1 votos

Estoy de acuerdo - esto debería ser cerrado si tiene varias preguntas relacionadas. Graham tiene una respuesta general increíble, así que he editado todas las preguntas específicas y he hecho que se trate del modelo de seguridad de Apple. Por favor, haz una pregunta de seguimiento con una pregunta muy específica si tienes una versión específica de una aplicación en una versión específica de macOS de la que quieras ayuda para evitar que se inicie. Puede haber pasos generales o específicos para controlar eso.

6voto

Steve Evans Puntos 155

El modelo de seguridad general es que los usuarios normales pueden agregar cualquier elemento de inicio a su reino (biblioteca de usuario para ellos) y no para el sistema, así que no permitas que las personas tengan cuentas de administrador si no confías en ellas para no ejecutar software que instale elementos de inicio a nivel del sistema.

No hay una forma fácil de evitar que un usuario administrador cambie el sistema. Puedes hacer cumplir Gatekeeper o aplicaciones firmadas, pero la mayoría de los usuarios administradores pueden saltarse esa configuración, así que como máximo, ralentizas a un usuario administrador poco educado por un tiempo.

Trabajos por Usuario y en Toda la Computadora

En macOS, launchd puede gestionar procesos en segundo plano por usuario y en toda la computadora.

Los trabajos por usuario existen dentro de tu sesión de usuario. Se inician y detienen al iniciar y cerrar sesión en la computadora. Si los trabajos tienen tareas asociadas, los encontrarás en la carpeta ~/Library/LaunchAgents y ~/Library/LaunchDaemons

Los trabajos en toda la computadora se inician y detienen con la computadora. Estos trabajos se almacenan en /Library/LaunchAgents y /Library/LaunchDaemons.

Los trabajos en toda la computadora administrados por Apple se almacenan en /System/Library/LaunchAgents y /System/Library/LaunchDaemons.

Los trabajos por usuario no necesitan permisos de superusuario. Por lo tanto, no necesitabas sudo para detener trabajos instalados a nivel de usuario por vox.app.

Desactivar un trabajo de launchd

Puedes descargar un trabajo de launchd para bloquear su retorno:

Uso: launchctl unload

  • -w Además deshabilita el servicio de forma que las futuras operaciones de carga resulten en un servicio que launchd rastrea pero no se puede lanzar ni descubrir de ninguna manera.
  • -S Solo descarga los servicios asociados con la sesión especificada.
  • -D Descarga archivos launchd.plist(5) del dominio especificado. Consulta la discusión sobre esta misma bandera cuando se da al subcomando de carga para más detalles.

El -w hace que la descarga se escriba en el disco y persista a través de las sesiones.

Para más información sobre detener, descargar y anular trabajos, consulta:

0 votos

Gracias por la explicación detallada. Ahora entiendo mejor. Pero todavía no puedo deshabilitar com.coppertino.VOXAgent y com.coppertino.VOXCloud permanentemente. Los dos demonios se pueden encontrar con el comando launchctl list | grep -i vox y no se muestran en ~/Library/LaunchAgents/ y no tengo el directorio ~/Library/LaunchDaemons. Puedo usar launchctl remove para quitarlos, pero lo malo es que vox.app puede crear dos demonios automáticamente cada vez que lo lanzo. Así que los quito y vox.app los vuelve a crear y se repite.. ¿Es posible detener que vox.app cree los dos demonios?

0 votos

Utilice la ruta de servicio y -w para descargar el trabajo. Eso detendrá el trabajo en el futuro. ¿Quién publica vox.app y has preguntado a los desarrolladores sobre este comportamiento?

0 votos

Siento preguntarte de nuevo. ¿Cómo puedo encontrar su ruta? -w necesita la ruta como argumento, pero no tengo idea cuáles son sus rutas. No las encuentro en ninguno de los directorios: ~/Library/LaunchAgents, /Library/LaunchAgents, /Library/LaunchDaemons, /System/Library/LaunchAgents, /System/Library/LaunchDaemons, . Intenté usar launchctl list com.coppertino.VOXAgent que tampoco me dice la ruta. Intenté usar launchctl print com.coppertino.VOXAgent que devuelve un error Especificador de destino no reconocido. Intenté buscar en Google, no encuentro nada útil sobre cómo encontrar la ruta de un daemon. Perdón.

1voto

Pickle Puntos 2099

El problema general es tratado en la respuesta de Graham Miln. Esta respuesta es solo una ligera adición ejercida sobre la aplicación de ejemplo dada:

Versión corta: macOS tiene algunos directorios especiales para este tipo de comportamiento. Esos son los caminos /Library globales y de usuario ya mencionados en la respuesta de Graham. Pero un camino menos visible y por lo tanto menos obvio está dentro de cada paquete de aplicación.

Algunas aplicaciones son demasiado inteligentes. Vox es un ejemplo claro de esto. Estos agentes no están bien explicados pero a menudo se quejan y por lo tanto podrían ser un programa, aplicación o software no deseado (PUPAS) potencialmente.

Esta aplicación desencadena una serie de eventos cuando se copia a /Applications y nuevamente cuando se inicia por primera vez.

En el paquete del paquete de la aplicación se encuentran LoginItems:

/Volumes/VOX/VOX.app/Contents/Library/LoginItems
  ../Loop.app
  ../VOX Agent.app

Ambos son copiados/registrados por el propio DesktopServicesHelper del sistema como un "elemento de inicio de la aplicación auxiliar". Este tipo de "ayudantes" se encuentran a menudo en otras aplicaciones y por lo general son solo molestias que añaden bloat. Podrían ser bloqueados preventivamente para registrarse en primer lugar por pequeñas aplicaciones útiles, como BlockBlock.

Dado que estos todavía están contenidos dentro del paquete de la aplicación ¡tendrías que buscar o proporcionar el camino dentro del paquete de la aplicación!

Una búsqueda de programas/ayudantes lanzados automáticamente tiene que incluir /Applications y ~/Applications.

Otra molestia se encuentra dentro del paquete de la aplicación:

 /Volumes/VOX/VOX.app/Contents/XPCServices 
 /Volumes/VOX/VOX.app/Contents/XPCServices/VOX\ Toolbox.xpc
 /Volumes/VOX/VOX.app/Contents/XPCServices/com.coppertino.Vox.GNTPClientService.xpc 

Una forma de deshabilitar estos procesos por usuario que te molestan está descrita en la respuesta de Graham, usando launchctl.
Solo necesitarías buscar dentro de /Applications también.
Otro método sería entrar en el paquete y simplemente eliminar estos elementos. - La mayoría de las veces esas aplicaciones funcionan bien sin ellos, simplemente faltando la funcionalidad respectiva. Vox era una pequeña aplicación de música 'sin adornos'. Funciona para eso sin esas molestias presentes en el disco.
A veces aplicaciones mejor diseñadas te ofrecen una opción para evitar esas travesuras en su diálogo de preferencias.

Favorito personal: En el caso de la aplicación en el ejemplo dado, sería mejor eliminar toda la aplicación.

Para responder directamente al titular de la pregunta:

¿Por qué una aplicación puede crear demonios sobre la marcha sin permiso sudo y cómo detenerlo?

Porque un usuario inicia la aplicación con sus privilegios y los demonios contenidos dentro de ese paquete de aplicación a veces están diseñados de una manera bastante molesta para luego registrarse de manera bastante opaca como "autostart" dentro del contexto de ese usuario y con los derechos de ese usuario. Para descargarlos o darse de baja no se requieren derechos o permisos sudo/administrativos. Si el infractor está bajo /Applications entonces la eliminación podría depender de permisos más elevados.

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