Como evitar que um processo seja executado?

1

Eu posso matar um processo. Mas como evito que esse processo seja chamado novamente sem removê-lo do Linux? Por exemplo, se eu executar algo como netstat para encontrar a porta associada ao processo, então, mato-a. Eu a verei novamente executando com um PID diferente em apenas alguns segundos.

    
por user53029 20.04.2015 / 03:28

2 respostas

2

Altere seus bits de permissão de execução. Como root, use o comando:

chmod a-x path_to_process_binary

Isso basicamente nega a permissão de execução para o proprietário, grupo e outros (como a = all).

Esse truque simples impedirá a execução do processo, mas acredito que você possa ter algo mais sério acontecendo em seu sistema.

Se você realmente precisar executá-lo, verifique esta resposta .

    
por 20.04.2015 / 03:44
1

Talvez seja um pouco demais, mas provavelmente a maneira mais segura seria usar o AppArmor ou o SELINUX para bloquear a execução do binário. Modificar as permissões do arquivo funcionará até que o pacote que fornece esse binário seja atualizado (então, ele será definido como executável novamente quando for atualizado).

Por outro lado, se você estiver tentando proteger uma partição inteira para que nada possa ser executado diretamente nela (por exemplo, proteja /var ou /tmp para que ninguém possa descompactar e executar binários nesses diretórios) , você pode montar as partições com o sinalizador de opções "noexec":

root@server: ~ # grep noexec /etc/fstab
/dev/sda6    /tmp   ext4   defaults,noexec,nosuid,nodev  1 1

Desta forma:

root@server: /tmp # cp /usr/bin/vim .
root@server: /tmp # ./vim
-bash: ./vim: Permission denied

Observe que os scripts de shell ainda podem ser executados como /bin/sh /tmp/myscript.sh , mas não diretamente com ./myscript.sh .

O sinalizador "noexec" é útil para servidores web, porque você pode evitar alguns ataques baseados em download, compilação e execução de binários de sites vulneráveis baseados em PHP ou CGI.

    
por 20.04.2015 / 08:18