Autor Tópico: autenticação linux através de uma página php.  (Lida 3608 vezes)

Offline deisefontoura

  • Usuário Ubuntu
  • *
  • Mensagens: 10
    • Ver perfil
autenticação linux através de uma página php.
« Online: 03 de Fevereiro de 2009, 15:53 »
Olá pessoal,
sou uma noob, então desconsiderem qualquer bobagem.

Eu preciso fazer autenticação de usuários do linux através de uma página php.
Estou tentando usar o seguinte código php:

<?php
session_start();

$usuario=$_POST["usuario"];
$senha=$_POST["senha"];
$servidor = "http://www.google.com";//$_SERVER['HTTP_HOST'];
$conexao = ftp_connect($servidor);

if(!$conexao){
echo "Servidor fora do ar";
//echo '<META HTTP-EQUIV="REFRESH" CONTENT="2; URL=teste2.html">';

}else{

if((empty($senha))or(empty($usuario))){

  echo "Usuario e Senha em branco";
 // echo '<META HTTP-EQUIV="REFRESH" CONTENT="2; URL=teste2.html">';

}else{

   if (@ftp_login($conexao, $usuario, $senha)) {
       echo "Conexao efetuado com sucesso\n";
       echo "Voce esta conectado como $usuario@$servidor\n";
      echo "Command : \n";
      echo exec("ls -l /var/deise");      
       //header("Location: index.html");
       exit;
   } else {
       echo "Usuario ou senha incorretos";
//       echo '<META HTTP-EQUIV="REFRESH" CONTENT="2; URL=teste2.html">';
   }
}}
ftp_close($conexao);
?>

Mas cada vez que tento acessar a página aparece a resposta de "servidor fora do ar",
sendo que o servidor não está offline (tanto que estou com o winscp e o putty conectados nesse servidor),
creio que ele apenas não esteja conseguindo estabelecer a conexão com o ftp_connect, mas não
consigo imaginar por que...

Alguém pode me ajudar? Alguma outra maneira de fazer essa autenticação direto no linux, sem
usar banco de dados (aliás isso é seguro?)

Agradeço se alguém ajudar :)

Offline agente100gelo

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.369
  • @Ceará
    • Ver perfil
Re: autenticação linux através de uma página php.
« Resposta #1 Online: 03 de Fevereiro de 2009, 16:46 »
Você realmente não conseguirá fazer uma conexão FTP com o Google :D

Rapaz, o que você realmente quer?
Depois da autenticação, o que dará acesso a este usuário?
Advogado e analista de sistema cearense.
Twitter: @glaydson

Offline deisefontoura

  • Usuário Ubuntu
  • *
  • Mensagens: 10
    • Ver perfil
Re: autenticação linux através de uma página php.
« Resposta #2 Online: 03 de Fevereiro de 2009, 17:19 »
Ops, postei o código errado ali, AQUILO DO GOOGLE ERA SÓ UM TESTE, desconsidere.

O servidor é obtido através do $servidor = $_SERVER['HTTP_HOST'];

Bom, como eu disse, estou tentando conectar nesse servidor e fazer autenticação
de um usuário linux através desse script php.

Como disse anteriormente, eu estou constantemente conectada à esse servidor através de
programas como putty, mas quando executo o script php, ele retorna a mensagem
de que o servidor está offline (sendo que NÃO está.)

Gostaria de saber quais motivos poderiam levar ao script não conseguir estabelecer uma conexão,
ou então que me sugerissem alguma outra maneira de fazer essa autenticação.

Obrigada,

Deise.

Offline agente100gelo

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.369
  • @Ceará
    • Ver perfil
Re: autenticação linux através de uma página php.
« Resposta #3 Online: 04 de Fevereiro de 2009, 08:49 »
Deise,

Desculpa pelo "rapaz". É força do hábito de conviver num clube do bolinha.

O problema do seu script é que ele está tentando fazer uma conexão FTP quando você precisa de uma conexão SSH (como do Putty). Retorna off-line porque você não deve ter um servidor FTP configurado.

Para fazer uma conexão SSH, siga os link abaixo:
http://kevin.vanzonneveld.net/techblog/article/make_ssh_connections_with_php/
http://phpbuilder.com/manual/en/ref.ssh2.php

Advogado e analista de sistema cearense.
Twitter: @glaydson

Offline deisefontoura

  • Usuário Ubuntu
  • *
  • Mensagens: 10
    • Ver perfil
Re: autenticação linux através de uma página php.
« Resposta #4 Online: 04 de Fevereiro de 2009, 16:34 »
Querido, Obrigada pela dica, segui o passo a passo
da página que você me enviou. Tive alguns
problemas com a instalaçao do ssh, o pecl
não funcionava , tive que instalar manualmente.
ainda assim as funções do ssh não são reconhecidas,
estou tentando descobrir porque, inclusive postei
um comment lá pra ver se me ajudam :)
além da extension no php.ini (que creio
ter colocado no local correto ) o que
mais pode estar errado - sendo que
tudo correu bem na instalação?

Offline deisefontoura

  • Usuário Ubuntu
  • *
  • Mensagens: 10
    • Ver perfil
Re: autenticação linux através de uma página php.
« Resposta #5 Online: 10 de Fevereiro de 2009, 14:47 »
Depois muito pesquisar, fiz esse script, que finalmente autentica usuários.

#abrindo o arquivo de senhas
$file = '/etc/shadow'; /*ou /etc/passwd, obs o usuario do apache precisa ter permissao para ler esse arquivo*/
$open = fopen($file,r);

#Carrega o usuário e senha
$user = 'deise';/*aqui vai o post do usuário*/
$pass = 'deise';

#"Expressão" para encontrar o usuário

$regex_usu = $user;

#Expressão para encontrar a senha
$regex_pass = $user.'\:([^\:]*)\:';


if($open){
   $read = fread($open,8192);
   if($read)
   {
       #
      echo "leu o arquivo";
      echo "<br>";
      echo $read;
      echo "<br>";
      #
      ereg($regex_usu,$read,$result_usu);
      ereg($regex_pass,$read,$result_pass);
      #
      echo "usuario:";
      print_r($result_usu[0]);
      echo "<br>";
      #
      echo "Senha:";      
      print_r($result_pass[1]);
      echo "<br>";   
         
         if($result_usu[0] == $user)
         {
            echo "usuario correto";
            echo "<br>";            
            if (crypt($pass, $result_pass[1]) == $result_pass[1]) {
      
                echo "Senha correta";
               echo "<br>";
               echo "Autenticacao completa";
               echo "<br>";               
            }else
            {
               echo "Senha incorreta";
               echo "<br>";                     
            }
         }else
         {
            echo "Usuario incorreto";
            echo "<br>";            
         }
   }else
   {
      echo "Falhou ao ler o arquivo";
      echo "<br>";      
   }
}else{
echo "Falhou ao abrir o arquivo";
echo "<br>";
}

Offline deisefontoura

  • Usuário Ubuntu
  • *
  • Mensagens: 10
    • Ver perfil
Re: autenticação linux através de uma página php.
« Resposta #6 Online: 10 de Fevereiro de 2009, 14:48 »
obs. considerar aquela carinha :( no meio do código como : ( sem o espaço no meio.