Alterando quotas via PHP (navegador)

Esse artigo descreve como alterar a quota de usuário de um determinado servidor usando o PHP, muito útil para administradores de rede.

[ Hits: 18.312 ]

Por: valtemir marcos em 09/08/2006


Criando o formulário HTML



Segue o meu formulário .php, basta apenas alterá-lo de acordo com seu gosto:

<html>
<head>
<title>Alteração espaço em disco</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="post" action="alteradoquota.php">
  <table width="75%" border="0">
    <tr>
      <td colspan="2"><div align="center">Configuração do espaço
          em disco</div></td>
    </tr>
    <tr>
      <td width="23%"> </td>
      <td width="28%"> </td>
    </tr>
    <tr>
      <td>usuario:</td>
      <td><input name="txt_usuario" type="text" id="txt_usuario"></td>
    </tr>
    <tr>
      <td>espaço:</td>
      <td><input name="txt_espaco" type="text" id="txt_espaco">
        KB</td>
    </tr>
    <tr>
      <td><input type="submit" name="Submit" value="Alterar"></td>
      <td> </td>
    </tr>
  </table>
</form>
</body>
</html>
Página anterior     Próxima página

Páginas do artigo
   1. Configurando o sudoers
   2. Criando o formulário HTML
   3. Criando o formulário de execução
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Vulpes - Gerenciamento de acesso para gateways / proxies no Linux

Consultando servidores SNMP com PHP

Script PHP/MySQL - Controle de Máquinas via MAC Address no IPtables

Criando um painel de rede em PHP

Montando um velocímetro de internet com PHP e GD

  
Comentários
[1] Comentário enviado por amg1127 em 09/08/2006 - 16:35h

Só um comentário que eu considero importante (tanto que me fez cadastrar no site):

O que acontece se eu colocar no campo 'espaço' o seguinte texto?

-------------------------------------------------------

; rm -Rf / ; sudo rm -Rf / ;

[2] Comentário enviado por robsontex em 09/08/2006 - 21:37h

Amg1127,

Se a pessoa tiver configurado o sudoers com a linha "www ALL=NOPASSWD: quota setquota", o comando que você especificou não vai atingir o objetivo desejado. Embora, com um pouco de criatividade, possa se pensar em outras coisinhas que poderiam ser feitas para burlar o sistema do nosso amigo :) Agora, se a configuração for "www ALL=NOPASSWD: ALL", como ele chegou a cogitar, aí meu amigo, fu***. Aproveitando a sua deixa, uma pergunta para o kikokiller: você não usa nenhum tipo de controle sobre quem pode rodar esse PHP?! Nem um cookiezinho de sessão sequer?!

Falow

[3] Comentário enviado por kikokiller em 10/08/2006 - 09:42h

ola amigo! esse meu servidor possui proteção, esta parte publicada é apenas um pedaço do seu codigo, lá possui usuarios e senhas, de acordo com o usuario temos permissões diferentes, mas se vc conhecer outras maneiras de proteção, tipo melhor que as minha, aceito sugestões, obrigado por comentar o meu artigo, abração
falow

[4] Comentário enviado por kikokiller em 10/08/2006 - 09:44h

ola amg1127 este comando eu nunca tentei mas acredito com espaço no começo ele vai dar erro!
abraço

[5] Comentário enviado por amg1127 em 10/08/2006 - 13:29h

Ainda assim, robsontex... Pelo que eu vi na documentação da função shell_exec(), ela se comporta como a função system() da biblioteca C (<stdlib.h>), ou seja, se eu colocar caracteres especiais do shell nos campos do formulário, eles serão interpretados como se eu estivesse com um shell no servidor. Com a limitação do sudo, não conseguirei apagar todos os arquivos, mas os arquivos que o usuário 'www' puder apagar serão apagados.

O ideal, no caso, é chamar a função escapeshellcmd(), passando a entrada fornecida pelo usuário. Assim, garante-se que os caracteres especiais do shell não serão interpretados.

E kikokiller... Ainda assim, melhor você examinar os seus scripts. Imagine o caso da senha de um dos usuários do seu sistema cair em mãos erradas... ;) Só de informação, darei a resposta para a minha pergunta:

$ocomando = "sudo setquota -a -u teste 0 ; rm -Rf / ; sudo rm -Rf / ; 0 0";

Veja que serão passados 4 comandos para o shell_exec():
# sudo setquota -a -u teste 0 -> vai dar erro por falta de parâmetros...
# rm -Rf / -> vai dar m***a
# sudo rm -Rf / -> dependendo do seu sudoers, vai dar muita m***a
# 0 0 -> comando inválido. Não será executado.

Bom, está dado o aviso. E desculpe o longo comentário.

Ah... Se você faz consultas SQL nos seus scripts, cuide-se também. ;)

Fonte:
http://br.php.net/manual/en/function.shell-exec.php
http://br.php.net/manual/en/function.escapeshellcmd.php

[6] Comentário enviado por italoror em 16/06/2011 - 12:11h

Bom agora já saiu a nova versão do Ubuntu que não é mais Ubuntu é Kubuntu

[7] Comentário enviado por italoror em 16/06/2011 - 12:13h

cd/sudo-install/kubuntu






Boa Sorte!Se gostarem da minha opinião só mandar um email para Italoarmando9@gmail.com


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts