Efetue logout de um usuário e exclua a conta

7

Estou tendo um problema no servidor (CentOS 6, Plesk 11.5) onde um usuário em particular está usando um mailer de massa e está na lista negra de nosso endereço IP. Eu tentei excluir este usuário usando:

/usr/sbin/userdel test

mas retorna uma mensagem dizendo que o usuário está logado no momento. Eu pensei ok, mate o processo. Então eu tentei:

pkill -u test

e também bloqueou a conta usando:

passwd -l test

que, esperamos, o impedirá de entrar no sistema no futuro.

Ainda dizendo que o usuário está logado. Como posso logar este usuário para permitir que eu o exclua do sistema?

    
por user1532468 21.07.2014 / 13:34

4 respostas

7

Primeiro, grep todo o processo do usuário 'test' e kill -9 all pid's e depois delete o usuário.

pgrep -u test
ps -fp $(pgrep -u test)
killall -KILL -u test
userdel -r test
    
por 21.07.2014 / 14:05
2
passwd -l <user>

não interrompe todos os meios possíveis de login. Por exemplo, se eles fizerem login usando ssh com chaves públicas, eles ainda poderão efetuar login, já que não precisarão de senha.

Para impedir que o usuário faça login novamente, edite o arquivo /etc/passwd e remova o usuário ou altere a sétima coluna para /sbin/nologin .

Executar:

ps -u <user>

para ver qual processo o usuário ainda está usando e matar todos eles. Você pode ter que usar:

kill -s 9 <pid>

para forçar o processo a parar.

    
por 21.07.2014 / 13:56
2

passwd -l <user> não desativa a conta. Como Gareth disse que o usuário ainda pode fazer login usando outro token de autenticação, como a chave SSH. para desativar esta conta você deve usar usermod --expiredate 1 definiu a data de expiração da conta para 1970. Agora você deve matar todos os processos que o usuário iniciou. executando:

$pgrep -u Foo imprimirá todos os processos em que o usuário Foo é iniciado. executando:

$kill -9 <pid> enviará SIGKILL sinal que elimina esse processo. Agora Executar:

$pgrep -u Foo | xargs kill -9

isto irá obter todos os ids do processo do usuário Foo e matá-los todos.

OR:

$kill -9 -u Foo

    
por 21.07.2014 / 14:23
1

Você já tentou matar todos os processos do usuário com o SIGKILL?

pkill -KILL -u username
    
por 21.07.2014 / 13:52