Parando LaunchAgents e Daemons

23

Eu trabalho como administrador em um ambiente de faculdade. Um dos desafios é interromper os serviços instalados pelos alunos com formação em CS. Algum tempo atrás, eles obtiveram acesso de administrador e instalaram agentes de lançamento e daemons em alguns sistemas. Os alunos também adicionaram algumas sugestões como com.apple.myprog.run. O problema é que eles não estão presentes no diretório launchchagents ou no diretório launchdaemons.

Portanto, minha pergunta é como encontrar o caminho para esses serviços daemon. Em seguida, o próximo passo é como interrompê-los. Uma vez que alguns destes podem começar de novo e de novo (com base em determinadas bandeiras).

Prashant
fonte
Problema semelhante. Não é possível parar um daemon que foi iniciado launchctl load -wF /Library/LaunchDaemons/name.of.this.plist.
18712 Meltemi

Respostas:

20

Se você deseja interromper o item desta inicialização, basta emitir um comando de descarregamento para iniciar via launchctl. Para uma correção permanente, adicione uma chave desabilitada ao plist com o valor true ou exclua / mova o arquivo para uma pasta na qual o launchd não o verifique automaticamente.

  • launchctl unload /System/Library/LaunchAgents/com.apple.AppStoreUpdateAgent.plist

A página de manual do launchctl possui uma boa documentação para controlar tarefas. Quanto à derrota geral dos majores de CS, você também pode considerar que eles editaram as listas existentes da Apple para fazê-las fazer algo que você não espera, por isso será muito mais fácil reinstalar o SO e migrar os dados do usuário de volta a partir de um backup (prestando uma observação específica a outra, reinstale todos os arquivos plist no espaço / Sistema / Biblioteca, / Biblioteca (e talvez também faça uma auditoria na ~ / Biblioteca de usuários administrativos). o sistema é basicamente game over e a defesa (localização e desativação) das alterações consome muito tempo em oposição à ofensa (reinstalar o sistema a partir de uma fonte boa conhecida e usar ferramentas de gerenciamento de configuração para garantir a detecção de arquivos alterados).

bmike
fonte
o ponto é que não sei onde o plist foi armazenado. Pesquisei no diretório LaunchAgents e não vejo os aplicativos lá.
Prashant
Eles podem estar em qualquer lugar. Você pode inicializar no modo de segurança e comparar uma saída da lista launchctl com a lista de inicialização normal. O mdfind mostrará os arquivos que contêm os trabalhos não autorizados (se eles não os excluírem do foco). Teoricamente, você também pode executar o fs_usage no launchd para rastrear quais arquivos são lidos durante a inicialização, mas, novamente, a logística de executar o fs_usage tão cedo na inicialização combinada ao fato de que você ainda precisa inspecionar todos os arquivos plist significa que você tem muito de trabalho cortado para "detectar as alterações e removê-las cirurgicamente" em vez de começar a limpar.
Bmike
1
Se você realmente deseja encontrar todos os .plist no sistema, isso será feito. É uma lista longa. find / -type f -name "*.plist"
afragen
man launchctl descarregar Nas versões anteriores, essa opção modificaria o arquivo de configuração. Agora, o estado da chave Desativado é armazenado em outro lugar no disco. .. (
Nakilon 01/09/2015
@Nakilon Você pode ser preciso sobre as versões? Você está se referindo à revisão 10.11 do launchd ou outra "versão anterior"?
bmike
17

A maneira mais fácil que eu encontrei de fazer isso é

sudo launchctl list | grep "rough name of what you want to find"
sudo launchctl remove "label.of.the.file"
Oantby
fonte
Obrigado, é exatamente isso que eu queria. Como excluir o serviço depois de excluir o arquivo!
amigos estão dizendo sobre chmac
2

Tente verificar estes locais:

/ Usuários / seu nome de usuário / Biblioteca / LaunchAgents /

/ Biblioteca / LaunchAgents /

/ Biblioteca / LaunchDaemons /

/ Sistema / Biblioteca / LaunchAgents /

/ Sistema / Biblioteca / LaunchDaemons /

Cory T
fonte
1

Você pode fazer um "launchctl dumpstate" e ele mostrará todos os serviços carregados e o caminho para a inicialização .plist e conteúdo.

Você provavelmente desejará executá-lo com algo como menos, pois ele despeja muita informação.

Mark Heath
fonte