Derrubar usuário do servidor

Enviada por vinicius jose 
vinicius jose
Derrubar usuário do servidor
18 de August de 2010 às 10:13PM
Boa noite,
Já rodei bastante no Google atrás de uma solução mas não consegui.
Tenho um servidor remoto que uso de proxy, divido ele com alguns amigos e fornecemos para alguns clientes (para manter o aluguel do servidor). Acontece que direto o putty da pau e o usuário do linux fica 'preso'. Como o acesso é restrito a 1 usuário somente, ou seja não da para duas pessoas logarem com o mesmo user, eu (o root) tenho que 'kickar' esses usuários presos.
Estou criando uma página que o usuário vai logar nela e se a os dados fornecidos estiverem corretos o user fornecido por ele será 'derrubado' ou 'morto' no servidor, assim possibilitando o usuário de novamente se conectar.
O sistema de login funciona bem, mas o comando para kickar não está funcionando.

Seguem as linhas do script que importam para o problema.


$nome = $_POST['nome'];
.
.
.
shell_exec ("sudo skill -kill $nome");
echo '<p align="center">Seu usuário foi derrubado do servidor com sucesso!<BR><a href="javascript:history.back(1);">Voltar.</a></p>';

_______________________________________________________________________________________________________
O Echo retorna perfeitamente, mas no entanto o usuário continua 'preso'. No caso o usuário do httpd é o Apache, estou rodando isso em um Sistema Linux CentOs 5.x

Agradeço toda ajuda.
Marcos Regis
Re: Derrubar usuário do servidor
19 de August de 2010 às 12:14PM
O usuário do apache tem permissão de fazer isso? Não acho uma boa idéia.
Usar SUDO sem senha é muito perigoso.
Lembre-se que para usar SUDO no centos é preciso adicionar o usuario que deseja a uma lista de permissão.

Se fosse comigo, usaria uma dessas soluções.

1 - Configure um serviço em alguma porta e quando ela for acionada execute o script que derruba o usuário baseado nas credenciais passadas.
2 - Utilize uma flag e deixe o script rodando de tempos em tempos. Essa flag pode ser um arquivo temporário com um nome específico que ao efetuar o login como você está fazendo, o PHP criaria este arquivo que seria usado como credencial do usuário a ser derrubado.

Uma outra solução é definir um tempo maximo de inatividade do usuário (pode ser usado o historico de comandos) e deixar um serviço rodando para que caso o tempo de alguma conexão ssh tenha atingido este limite o script o derrube.
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.