Terminal Didático - Shell Script via WEB (PHP + Bootstrap)

O Terminal Didático executa comandos dentro do Shell via WEB Browser, é uma alternativa de acesso remoto para diagnósticos de problemas. Feita com o framework front-end Twitter Bootstrap + PHP + Apache, com visual robusto e desenvolvida para usuários iniciantes em comandos Linux.

[ Hits: 20.841 ]

Por: Jonathan Wolff Andrade em 07/05/2014 | Blog: http://wolffwebmaster.com.br


How it works



Como funciona?

A interface gráfica foi criada com a linguagem de programação PHP, utilizando o framework de front-end Twitter Bootstrap.

A responsividade (capacidade do site de se adaptar a qualquer tamanho de tela) é herança do framework, a programação em PHP é orientada a objetos e de fácil entendimento. Existe duas funções em PHP que fazem a maioria do trabalho, uma delas é de segurança, implementada no arquivo shell/classes/funcoes.php .
Linux: Terminal Didático - Shell Script via WEB (PHP + Bootstrap)
Ela bloqueia os comandos cp, mv e rm, que por padrão seriam liberados, portanto, seria uma vulnerabilidade não ter a mesma.

Comandos como chmod, chown, top, ifconfig e outros que precisam de mais permissão, simplesmente não são executados.

A segunda, e mais importante, é a função shell_exec, que executa uma ou um conjunto de strings dentro do Shell, retornando mensagens do Shell, quando o comando é executado.

Para saber mais sobre ela: Sobre shell_exec

Ela é implementada dentro dos arquivos das páginas principais, ou seja, index.php, utilitarios.php e parametros.php, da seguinte forma:

<?php
    if (!$funcoes->seguranca($_GET['cmd']) )
      $funcoes->erro();
    else{

      //Atribuição para concatenar o comando com parametro
      //? esta conferindo se é verdadeiro e : se for falso
      //? Se foi setado, concatena com cmd(parametro+cmd) : caso contrário mostra apenas cmd(cmd)

      $_GET['cmd'] = (isset($_GET['parametro']))?$_GET['parametro'] . $_GET['cmd']:$_GET['cmd'] ;

      //Mostra cmd
      if ($_GET['cmd'] != ""){
        echo "<pre class=\"linux\">";
        echo gethostbyaddr($_SERVER['REMOTE_ADDR'])."$ ";
        echo "<span class='text-error'>" . $_GET['cmd'] . "</span><br>";
        $cmd = shell_exec($_GET['cmd']);
        echo $cmd;
        echo "</pre>";
      }
    }
?>

Ela é responsável por ler o comando informado, verificar se não é um comando bloqueado; caso seja liberado, então, é concatenado ou montado o comando dentro da sintaxe, e se não estiver vazio, é mostrado em tela.

Compreendeu a ideia? Então, os comandos que são executados têm permissão apenas de Leitura no GNU/Linux e, por isso, a ferramenta é só de diagnóstico.

Para executar tarefas de manutenção, seria necessário refinar a segurança, permitindo que mais comandos fossem executados (para os interessados em contribuir com uma nova versão...).

Simples, não? Nem tanto, mas não vou me ater a detalhes muito técnicos como este. Conforme dito, meu objetivo é facilitar o primeiro contato com o GNU/Linux, mexer no código é para quem tiver interesse de contribuir com a ideia.

Parece que não, mas tudo se resume basicamente a isto, o resto é perfumaria, lógica e HTML. Se você não entendeu nada, não se preocupe, vai entender...

Didática

Lembra que eu prometi uma ferramenta didática? E ela é, de forma bem simples e modesta, mas é.

Se você é um usuário de GNU/Linux há anos, como eu, percebeu que este é um mundo pouco didático, e existem poucas almas que ajudam, boa parte delas encontradas aqui no VOL.

Então, a parte didática desta ferramenta, está na interface. Quando você executa um comando, que foi validado, o mesmo traz o resultado do Shell em verde e o comando executado em vermelho.
Linux: Terminal Didático - Shell Script via WEB (PHP + Bootstrap)
Se você deixar o mouse sobre o ícone de ? fixado na direita do site, será direcionado para as páginas de tutoriais, que explicam o funcionamento de cada módulo em mais detalhes.

Colocando em prática

Primeiramente, é necessário instalar o PHP 5 e Apache 2, então, execute este comando no terminal:

sudo apt-get install apache2 libapache2-mod-php5 php5

Após instalar os mesmos, será criado o diretório /var/www. Dentro dele, você irá extrair a pasta com a ferramenta, ou arquivos do site, a pasta shell.

A pasta shell (730.8 kB, arquivo .zip) pode ser baixada, aqui: Ou, anexado neste projeto, aqui: shell.zip

Então, o caminho vai ficar em /var/www/shell e você pode acessar através do seu navegador (WEB Browser), inserindo na URL:
  • http://localhost/shell

Só. Pronto, agora é só usar.

Observações:

1. Caso você esteja em uma rede fechada, por exemplo, no trabalho e supondo que seu IP Fixo é 192.168.1.99. Seu colega pode acessar seu micro alterando a URL de localhost para seu endereço de IP, ficaria assim: http://192.168.1.99/shell

2. Se ao acessar, aparecer alguma mensagem semelhante a:

 Forbidden. You don't have permission to access /shell/ on this server. Apache/2.2.22 (Ubuntu) Server at localhost Port 80

... você deve dar permissão à pasta, com o comando:

sudo chmod 755 /var/www/shell -R


Espero que façam bom proveito.
Obrigado.

Página anterior    

Páginas do artigo
   1. Início
   2. How it works
Outros artigos deste autor

Removendo vírus de Windows com LiveCD GNU/Linux

Mozilla Firefox é coisa do tinhoso?! Mito, verdade ou apenas um easter egg proposital?

Leitura recomendada

Como configurar o servidor de correio eletrônico Postfix

KDialog com Shell Script - Conversão de slides JPG para projetores com suporte a miniaturas de imagens

Automatizando a conexão com Internet via ADSL com PPPoE no OpenBSD

Fazendo o bash contar piadas

Convertendo TXT ou HTML em OGG

  
Comentários
[1] Comentário enviado por alexxxx em 13/09/2014 - 11:07h

Muito legar mais tem como eu logar como root nesse terminal ?? navegar entre pastas etc ?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts