É possível matar o programa de outro usuário? Como?

3

root pode matar qualquer programa executado por qualquer usuário. É possível que um usuário mate o programa de outro usuário sem usar sudo , etc?

Exemplo: Como fazer com que o usuário foo mate o programa x , que é executado pelo usuário bar ?

    
por Jane Watson 07.10.2011 / 11:55

3 respostas

9

Isso é da kill(2) página de manual:

For a process to have permission to send a signal it must either be privileged (under Linux: have the CAP_KILL capability), or the real or effective user ID of the sending process must equal the real or saved set-user-ID of the target process. In the case of SIGCONT it suffices when the send‐ ing and receiving processes belong to the same session.

Então, essencialmente, em circunstâncias normais, se você não for root (e não tiver como se tornar root ou outro usuário, via sudo ou setuid programs), você não pode matar o processo de outro usuário.

    
por 07.10.2011 / 12:04
1

Só é possível que root e bar matem um processo pertencente à barra. Programas Sudo / setuid mudam os privilégios de foo para os de root.

    
por 07.10.2011 / 12:03
0

Veja o Gilles responder em Por que o bash ignora o SIGTERM?

Primeiro, isso não é específico para o bash. ATT ksh, dash e zsh se comportam da mesma maneira: eles ignoram SIGTERM e SIGQUIT durante a edição da linha de comando; quanto ao mksh, ele também não sai mas trata-os como SIGINT.

Tanto o manual do ksh quanto o manual do bash justificam ignorar o SIGTERM nestes termos:

so that kill 0 does not kill an interactive shell

kill 0 mata todos os processos no grupo de processos no qual o shell está. Em poucas palavras, o grupo de processos consiste em todos os processos em execução em primeiro plano em um terminal ou em todos os processos em um plano de fundo ou em um trabalho suspenso.

    
por 24.11.2015 / 21:39