Forçar logout de um usuário

60

I Quando eu entrei na máquina como roote digitei whopara ver quais usuários estão conectados, encontrei alguém também conectado como root

devuser   pts/0        2011-11-18 09:55 (xxx.xxx.xxx.xxx)
root      pts/1        2011-11-18 09:56 (xxx.xxx.xxx.xxx)
testuser  pts/2        2011-11-18 14:54 (xxx.xxx.xxx.xxx)
root      pts/3        2011-11-18 14:55 (xxx.xxx.xxx.xxx)

Como forçar um usuário root em pts / 3 a sair?

Mithun Sreedharan
fonte
9
Você tem um problema ainda maior para resolver. Desative logins raiz diretos e force seus usuários a usar o sudo.
Xenoactive

Respostas:

55

Você encerra uma sessão matando seu processo pai, chamado líder da sessão. Descubra com qual processo está:

ps -dN|grep pts/3
Fabel
fonte
10
E, em seguida, matar esse processo usandokill -9 <processid>
Mithun Sreedharan
5
Apenas kill <pid>deve ser suficiente, certo? Salve os kill -9para processos com mau comportamento que não respondem a INT, HUP ou TERM; é como a diferença entre desligar um computador usando o sistema de menus do sistema operacional e puxar o plugue do computador.
TheDudeAbides
26

Para matar e sair de um usuário, você pode enviar um sinal KILL. Digite o seguinte comando:

# skill -KILL -u vivek

Verifique estes links para obter mais informações:

Niranjan Singh
fonte
6
e se eu estiver logado como o mesmo usuário?
Mithun Sreedharan
estas obras de comando para super usuário .. é necessário fazer login como superusuário .. sistemas operacionais de rede seguir esta abordagem para a segurança .. eu acho que esses links também estão dizendo mesmo com o login como administrador ..
Niranjan Singh
me chutou sudo su -também, mesmo sendo raiz, mas acho que não estava no fim. voltar ao servidor me mostrou como o único. Eu tinha 4 instâncias de mim mesmo, acho que diria.
pjammer
5
@Mithun Você pode usar em -t <terminal name>vez de -u.
Melebius
11
O link do cyberciti agora diz "AVISO! Essas ferramentas são obsoletas, não portáveis ​​e estão aqui devido a razões históricas. Considere usar os comandos killall, pkill e pgrep, da seguinte maneira". pkill -KILL -u vivekfunciona tão bem.
EM0
0

Melhorando um pouco a resposta de Fabel acima:

\# *for pid in $(for ptsn in $(w | grep **user_name** | grep pts | awk '{print $2}'); do ps -dN | grep "$ptsn " | awk '{print $1}' ; done); do kill -9 $pid; done*
collisio
fonte