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: 21.108 ]

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

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

Removendo vírus de Windows com LiveCD GNU/Linux

Leitura recomendada

Como Configurar seu Lucent Winmodem

Antispam em Shell Script

Impressora PDF via Samba para estações Windows

Alguns recursos do BASH para você utilizar em seus programas

Script "apagador de linhas"

  
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