Como forçar outros usuários a sair?

14

Existe uma maneira simples de forçar outro usuário a sair de uma caixa Linux, enquanto estou logado como root? Entendo que poderia determinar que tipo de sessão eles abriram e acabar com o pid - mas estou pensando que deve haver um comando para fazer isso que não conheço.

Alguma ideia?

Brent
fonte

Respostas:

15

Você pode simplesmente slay(1)ele. :-)

David Schmitt
fonte
Ha! Arrumado. Eu nunca tinha ouvido falar desse comando antes. Está disponível em todos os sistemas? Parece que é melhor do que matar o processo do shell.
913 Jonathon Watney
Provavelmente está empacotado para todas as distros, mas se você precisar de algo que funcione em todos os lugares, a habilidade dos representantes - como Mihai aponta - pode ser uma escolha melhor. Tem menos estilo embora ;-)
David Schmitt
1
openSuse 11.4 - slay: comando não encontrado :( :(
usr-local-ΕΨΗΕΛΩΝ #: 25/05/12
Não instalado nos hosts Ubuntu 12.04 ou RHEL 3 que tenho atualmente disponíveis, tenho o skillcomando detalhado por Mihai Limbăşan. YMMV
David
Instale-o a partir do universo: packages.ubuntu.com/search?keywords=slay
David Schmitt
10

Você pode matar todos os processos de um usuário via skill. Exemplo:

  • skill -TERM -u username

enviará o SIGTERM para todos usernameos processos. Para matá-los para sempre (via SIGKILL), use -KILL em vez de -TERM - observe, porém, que você provavelmente fará com que eles percam dados dessa maneira. É altamente eficaz, lembre-se ...

skillfaz parte do procpspacote que é instalado por todas as distribuições por padrão.

Mihai Limbăşan
fonte
Para outras pessoas que desejam fazer isso em todas as sessões de usuário remoto, o sinalizador -v ( -v pts/*), que é da página de manual, pode ser útil.
David
2

O pkille killallsão preferidos skill. Isto é da skillpágina de manual:

Essas ferramentas são provavelmente obsoletas e não portáveis. A sintaxe do comando está mal definida. Considere o uso de os killall, pkille pgrepcomandos em seu lugar.

Isso deve fazer o truque:

sudo pkill -KILL -u [user]

ou

sudo killall -u [user]
David
fonte
1
Não tente isso na raiz.
Michael Hampton
0

Outra maneira fácil de fazer isso é executar kill -1 <pid>onde pid é o número de identificação do processo da sessão SSH.

Ao executar este comando, você pode ver todas as árvores do processo sshd . Ao matar o ID do processo pai, você efetivamente eliminará a sessão do usuário associada a ele:

$ ptree -p

Procure sshd e execute:

$ kill -1 39383

Onde 39383 é um exemplo de um número de identificação de processo arbitrário.

Sim Barry
fonte