Fiz um pequeno servidor Samba com o Slackware 11, o cliente queria poder administrar os usuários por meio de uma página web, tarefa até muito simples para quem é habituado com programação em shell, PHP ou Perl, mas para mim e muitos administradores não. Depois de pesquisar consegui implementar scripts PHP para realizar estas tarefas.
As linhas comentadas logo acima são para caso você deseje que o PHP redirecione após adicionar um usuário para uma página com uma mensagem de sucesso, preferi usar apenas uma mensagem de echo, caso você opte por usar uma página de sucesso, comente a linha de echo de descomente as demais. O mesmo vale para os demais scripts que seguirão adiante.
[3] Comentário enviado por capitainkurn em 09/02/2007 - 02:31h
Jgama, concordo com você mas quem vai administrar o sistema é o dono da empresa, que não sabe nada de Linux ou Shell e precisava de uma interface amigável.
[5] Comentário enviado por lord_roxton em 09/02/2007 - 11:33h
Para administração de um ambiente com SAMBA/OpenLDAP já existem muitas ferramentas gráficas que são muito intuitivas, como por exempo phpldapadmin e GOSA! Neste caso específico usando apenas SAMBA acho que a idéia foi muito boa!
[6] Comentário enviado por capitainkurn em 10/02/2007 - 10:07h
Ah... mas só o trabalho que ia dar... como disse no artigo é um servidor pequeno, para uma empresa pequena e um orçamento menor ainda! Rssssssss é só um quebra galhos
O script não filtra os valores recebidos pela aplicação web. Uma pessoa mais criativa poderia digitar algo como "jose > /etc/passwd" para a variável $_POST['login'] no script e corromper o servidor. Por favor, nem me falem de validação via Javascript, porque isso não funciona.
A iniciativa de desenvolver algo e liberar para outros utilizarem é muito legal, mas a primeira regra deveria ser verificar se já não existe um projeto iniciado dessa forma e tentar trabalhar nele. Além de evitar o desperdício de energia você tem a oportunidade de aprender com outras pessoas.
Existem vários sistemas de gerenciamento de usuários do Samba via web, a maioria para manipular servidores que usam LDAP como base de dados. Eu mesmo desenvolvi um em http://faus.sourceforge.net.
Esse projeto está parado há alguns meses quando eu percebi que a execução dos comandos do próprio Samba dá várias dores de cabeça além dos problemas de segurança. A melhor maneira de fazer isso seria integrar o código do próprio Samba para fazer chamadas RPC e manipular os usuários, da mesma forma que o UserManager do Windows faz. Claro que identificar quais bibliotecas do Samba usar e como usar requer um tempo considerável do qual não disponho.
É nessas horas que eu gostaria de receber mais ajuda com codificação. :-)
[8] Comentário enviado por coffani em 12/02/2007 - 14:03h
Parabéns pela iniciativa, como vc disse, empresa pequena, servidor pequeno e orçamento nem se fala...
Para quem num tem nada em mãos esse é um bom começo.. Vlw
[9] Comentário enviado por capitainkurn em 13/02/2007 - 11:16h
Conheço o FAUS, mas isso é um quebra galhos, apenas o dono da empresa que usa, quanto aos crackers que possam corromper o servidor isso pode ser fcilmente resolvido colocando-se os scripts e páginas de formulário dentro de um diretório protegido por um .htaccess em um servidor https. Na verdade eu ia postar como uma dica e não como um artigo, mas dada a quntidade de passos achei melhor postar como artigo.
[11] Comentário enviado por quartodazona em 20/09/2010 - 07:50h
Caro amigo, sei que já faz tempo este post, porém eu não consigo fazer o Debian 5 criar usuário pelo PHP de forma alguma.
Fiz todos os seus passos.
Criei um usuário apache e o coloquei num grupo específico como você mencionou, mas ele só consegue criar diretórios e arquivos quando eu o executo no php, ou seja, executo uma página em php passando um comando ou mandando executar um script que já faz isso.
Já tentei de várias formas e nada, mas como eu disse acima, se eu quiser criar diretórios ou arquivos usando os comandos abaixo, funciona numa boa:
Já o coloquei no arquivo sudoers de várias formas:
- apache ALL=NOPASSWD: useradd smbpasswd userdel chpasswd <-- Este não rola nada destes comandos
- apache ALL=NOPASSWD: ALL <-- Totalmente inseguro este e não funciona o comando useradd
- apache ALL=NOPASSWD: /usr/sbin/useradd, /usr/bin/passwd, /usr/bin/openssl, /bin/false
- apache ALL=(ALL) ALL <-- Totalmente inseguro também, mas não funciona o comando useradd
O que eu descobri foi que se eu crio um usuário no Linux e dou privilégios no arquivo sudoers como fiz acima e executo o comando useradd dentro do Linux, consigo fazer tudo o que o root faz como descrito no arquivo sudoers, porém se eu pego este mesmo usuário e o coloco no grupo do apache como você falou e tento executar o comando useradd, não funciona.
Já revirei a net e não encontrei nada mais interessante que este e outro post aqui no Viva o Linux. Preciso implementar uma solução em uma determinada empresa e só preciso executar o comando useradd via browser para que este sufoco termine.