Me está costando mucho averiguar cómo esos programas no deseados se autoiniciaron en el sistema. Estoy ejecutando MacOS Big Sur.
Por ejemplo, eche un vistazo al siguiente trabajo:
$ launchctl list | grep -i thunder
405 0 com.xunlei.Thunder.ThunderHelper
$ launchctl print gui/$(id -u)/com.xunlei.Thunder.ThunderHelper
com.xunlei.Thunder.ThunderHelper = {
active count = 4
copy count = 0
one shot = 0
path = (submitted by otherbsd.330)
state = running
program identifier = com.xunlei.Thunder.ThunderHelper
parent bundle identifier = com.xunlei.Thunder
parent bundle version = 4368
inherited environment = {
SSH_AUTH_SOCK => /private/tmp/com.apple.launchd.ZGX7Lm6JIp/Listeners
}
default environment = {
PATH => /usr/bin:/bin:/usr/sbin:/sbin
}
environment = {
XPC_SERVICE_NAME => com.xunlei.Thunder.ThunderHelper
}
domain = com.apple.xpc.launchd.user.domain.501.100006.Aqua
asid = 100006
minimum runtime = 10
exit timeout = 5
runs = 1
successive crashes = 0
pid = 405
immediate reason = semaphore
forks = 0
execs = 1
initialized = 1
trampolined = 1
started suspended = 0
proxy started suspended = 0
last exit code = (never exited)
semaphores = {
successful exit => 0
}
event triggers = {
}
endpoints = {
"com.xunlei.Thunder.ThunderHelper" = {
port = 0x9a333
active = 0
managed = 1
reset = 0
hide = 0
}
}
dynamic endpoints = {
"com.xunlei.Thunder.MessageHelper" = {
port = 0xac607
active = 1
managed = 0
reset = 0
hide = 0
}
}
pid-local endpoints = {
"com.apple.tsm.portname" = {
port = 0xbecaf
active = 1
managed = 0
reset = 0
hide = 0
}
"com.apple.axserver" = {
port = 0xbe833
active = 1
managed = 0
reset = 0
hide = 0
}
}
instance-specific endpoints = {
}
event channels = {
}
sockets = {
}
instances = {
}
spawn type = interactive (4)
jetsam priority = 3
jetsam memory limit (active) = (unlimited)
jetsam memory limit (inactive) = (unlimited)
jetsamproperties category = daemon
submitted job. ignore execute allowed
jetsam thread limit = 32
cpumon = default
job state = running
properties = {
partial import = 0
xpc bundle = 0
keepalive = 0
runatload = 0
low priority i/o = 0
low priority background i/o = 0
dataless file mode = 0
legacy timer behavior = 0
exception handler = 0
supports transactions = 1
supports pressured exit = 0
supports idle hysteresis = 0
enter kdp before kill = 0
wait for debugger = 0
app = 0
system app = 0
creates session = 0
inetd-compatible = 0
inetd listener = 0
abandon process group = 0
event monitor = 0
penalty box = 0
role account = 0
launch only once = 0
system support = 0
inferred program = 0
joins gui session = 0
joins host session = 0
parameterized sandbox = 0
resolve program = 1
abandon coalition = 0
high bits aslr = 0
reslide shared cache = 0
disable resliding = 0
extension = 0
nano allocator = 0
no initgroups = 0
start on fs mount = 0
needs implicit endpoint = 0
is copy = 0
disallow all lookups = 0
system service = 0
protected by submitter = 0
multiple instances = 0
}
}
Me pregunto cómo se inició este trabajo de forma automática. ¿Cómo funciona realmente?
¿Qué hace submitted by otherbsd.330
¿el camino quiere decir aquí?
No encuentro un archivo plist en ninguna parte que sea responsable de este trabajo.
Muchas gracias.
Por cierto, no estoy seguro de que las siguientes palabras estén relacionadas con esta pregunta o no. Puede ignorar las siguientes palabras. Sólo quiero proporcionar más información que pueda ayudar en esta cuestión.
Hice otra pregunta con respecto a cómo eliminar los iterms de inicio de sesión ocultos de $HOME/Library/Application Support/com.apple.backgroundtaskmanagementagent/backgrounditems.btm
. Hasta ahora, no hay respuesta todavía. Dentro de backgrounditems.btm
tiene esto ThunderHelper
proceso también. Ya que no encuentro una forma adecuada de eliminar el iterm de inicio de sesión. Está oculto y no se muestra en las preferencias del sistema. Borro el archivo completamente con el comando rm backgrounditems.btm
pero mágicamente, después de apagar y reiniciar el sistema, este iterm de inicio de sesión se creará automáticamente de nuevo dentro de un nuevo backgrounditems.btm
archivo.
Estoy pensando en cambiar el propietario y el permiso de grupo de este archivo. Hacer que Root sea el propietario y que el resto de usuarios sólo tengan permiso de lectura. No he probado este enfoque. Espero que funcione.