6 de março de 2009

Windows Registry Fixer

Perdi a minha virgindade com projetos de software livre!

Estou concluindo a minha Pós Graduação em Adminstração de Redes Linux, na Universidade Federal de Lavras e a minha monografia tem o tema Controle de Permissões do Windows através do Samba. Grande parte do meu trabalho foi focalizado em criar um arquivo com entradas para o Registro do Windows, que quando importado pelo mesmo, deveria configurar o sistema, definindo permissões e montando compartilhamentos. O legal disso é que o Samba manda executar esse arquivo no Windows assim que um usuário entra no domínio, o que confere mais segurança à rede, que tem o Samba trabalhando como PDC (Primary Domain Controller).


A princípio eu havia me limitado a criar um arquivo texto com várias entradas para o Editor do Registro do Windows (Regedit). Assim, caso eu quisesse deixar de usar uma determinada entrada, tinha que ficar comentando todas as linhas daquela entrada, o que não é preciso dizer que é muito chato e pouco produtivo. Acontece que neste tempo eu fiquei conhecendo a linguagem Python e me encantei por sua legibilidade, sintaxe, facilidade e por sua vasta API. Dessa forma eu tive a ideia de automatizar a criação do script para o Regedit, através de um programa Python. Com isso, em vez de ter que ficar alterando manualmente o arquivo para o Regedit, eu alteraria apenas a chamada para as funções do programa Python responsáveis por criar determinada entrada para o Regedit.

Mas eu ainda não estava satisfeito. Para alterar as entradas, era necessário ficar mexendo no código fonte, o que ainda era um saco e então eu tentei encontrar uma solução melhor para o problema e eis que eu cheguei na solução que tanto queria: em vez de fazer um programa, resolvi fazer um módulo em Python.  Dessa forma, o módulo poderia ser importado por outros programas e cada função poderia ser chamada à vontade pelo programador. Isso deu vida ao Windows Registry Fixer (WRF), um módulo em Python que implementa várias entradas para o Regedit, que podem ser usadas para criar um arquivo para configurar o Windows automaticamente.

É claro que a solução tem muito o que ser melhorada, pois fica por conta do usuário implementar um programa em Python, para importar o WRF e só então gerar o arquivo de entrada para o Regedit. A minha ideia para futuras versões deste módulo é a criação de uma interface gráfica para o mesmo, onde o usuário poderá selecionar graficamente quais entradas ele vai querer, para compor o arquivo de entrada para o Regedit, configurando de forma fácil cada entrada e gerando o arquivo ao final. Além disso, cabe sempre atualizar o módulo, uma vez que ele está com funções para o Windows XP, que apesar de poderem funcionar nas versões mais novas do sistema operacional da Microsoft, já devem haver novas funções, exclusivas para as estas versões. Ainda seria interessante conseguir separar as funções por versão do Windows e por escopo de aplicação (máquina ou usuário – entradas para a máquina afetam todos os usuários que utilizarem aquele host, já entradas para o usuário afetam apenas aquele usuário ou grupo a que se destinam).

Quanto à monografia, assim que eu apresentá-la e concluir as correções que forem propostas, entregando o resultado final, vou publicá-la neste blog, afinal, ela não seria possível sem a ajuda da comunidade do software livre e por isso, nada mais justo que liberá-la livremente!

Bom, é isso. Windows Registry Fixer 0.0.2 lançado, disponível sob GPLv3, usando o Git para controle de versões e hospedado no Google Code. O endereço?




Leia Também

2 comentários:

  1. Grande zezim!

    Definitivamente muito interessante! São essas idéias que movem o nosso mundo!

    Abraço!

    ResponderExcluir
  2. Valeu, Fabrício!
    Fica o convite para testar e dar sua opinião/contribuição para o projeto.
    Como eu expus, há muito o que se fazer!
    :-)

    ResponderExcluir