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

Por: valtemir marcos em 09/08/2006


Configurando o sudoers



Partindo da idéia que sua quota já esteja configurada e funcionando corretamente, antes de mais nada temos que habilitar o arquivo sudoers. Use seu editor favorito:

# mcedit /etc/sudoers

E adicione a seguinte linha:

www ALL=NOPASSWD: quota setquota

Ou habilite tudo logo, mas isso deixa o servidor meio sem segurança:

www ALL=NOPASSWD: ALL

Salve e saia do editor.

    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

Criando um painel de rede em PHP

Consultando servidores SNMP com PHP

Montando um velocímetro de internet com PHP e GD

Verificando integridade de servidores POP com PHP/sockets

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

  
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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts