Neste artigo mostrarei como utilizar dos recursos do PHP para cadastrar usuários no Linux e no Samba. Isso é útil porque nos permite cadastrar usuários no sistema a partir de sua intranet ou até mesmo via internet.
Não conseguimos carregar os anúncios.Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Entendendo
Como seria possível adicionar usuários no Linux e Samba, sendo que
nos mesmos tenho que digitar 2 vezes a senha? Como fazer para abrir
um shell script em PHP? Seria isso mesmo?
Bem, então alteraríamos o sudo e usaríamos o comando
shell_exec do PHP.
#1Comentário enviado por gustavo_marcon em 01/12/2003 - 15:26h
Eu fiz tudo isso mas o meu problema tá c/ o sudo.
Quando coloco permissões pro user www ele começa dar erro e não funciona.
O que será que pode ser?
#2Comentário enviado por tucs em 01/12/2003 - 17:52h
Vamos por partes ...
que problemas esta aparecendo ...
Tente alterar essa linha
www ALL=NOPASSWD: useradd smbpasswd userdel
para
www ALL=NOPASSWD: ALL
Lembrando que issu naum eh legal fazer, pois vc estaria dando permissao root para o user www
Abracos
tucs
#3Comentário enviado por hackwiz em 01/12/2003 - 19:21h
só uma palavrinha:
Parabéns!
#4Comentário enviado por gustavo_marcon em 01/12/2003 - 19:40h
Tucs, eu tentei mas não dá certo nem assim...
O erro que dá diz que a linha 17 tem erros, mas ela está certa pois eu só copiei e colei do seu artigo.. Já tentei até desinstalar e reinstalar o sudo.
#5Comentário enviado por tucs em 02/12/2003 - 09:13h
hackwiz, Obrigado pelo icentivo, mas na verdade todos estamos de parabens , pois sem vcs pra que ei e outros iriam postar nosso trabalhos ?
Obrigado pela forca.
gustavo_marcon, que distro vc esta utilizando, apesar de naum ter problemas a naum ser no sudo,
faz assim me mande o seu soduers pra mim dar uma olhada (mail-me)
Abracos
tucs
#6Comentário enviado por antonioao em 15/01/2004 - 12:39h
Gustavo,
apache ALL(ALL) NOPASSWD: ALL
tive o mesmo problema que o seu e foi resolviso assim (apesar que ALL não é legal).
um abraço a todos :)
#7Comentário enviado por string em 22/01/2004 - 18:00h
e ae..blz.
Meu apache+php+mysql estao funcionando perfeitamento, porem da dando seguinte erro, ja tentei de tudo, v ai se alguem tem um dica:
// validacao.php
Warning: Cannot send session cache limiter - headers already sent (output started at /var/www/html/cadastro/validacao.php:2) in /var/www/html/cadastro/validacao.php on line 3
Warning: Cannot add header information - headers already sent by (output started at /var/www/html/cadastro/validacao.php:2) in /var/www/html/cadastro/validacao.php on line 25
#8Comentário enviado por gustavo_marcon em 13/02/2004 - 18:58h
Preciso fazer um script php em que o usuário do apache possa executar as seguintes opções:
adsl-stop, adsl-start, halt e reboot.
Tentei montar a linha do arquivo /etc/sudoers mas em nenhuma delas funcionou.
Como vc acha q essa linha deve ficar p/ esses comandos?
Obrigado.
#9Comentário enviado por webkiller em 21/06/2004 - 16:56h
Achei muito interessante o script, mas gostaria de saber se existe uma forma mais segura de executá-lo, não posso dar permissão para o apache executar qualquer comando como root.
Como eu faço para dar permissão ao usuário www com acesso local somente ao comando chpasswd? Isso é possível?
#10Comentário enviado por fhm_online em 27/07/2004 - 08:45h
Olá amigo!
Não estou conseguindo passar adiante do sudo... Dá um erro de sintaxe.
Já verifiquei a ortografia e não encontro erro algum.
O que deve ser?
Obrigado desde já!
#11Comentário enviado por pr02nl em 18/02/2005 - 23:43h
Sei que estou um pouco atrsado, pois o artigo foi submetido ja ha algum tempo, mais, eu comecei a gerenciar um servidor na faculdade que ja estava com tudo rodando, "samba, php, mysql", e eu realmente tinha essa nessecidade, porém antes de aplicar essa ideia gostaria de saber do autor como eu posso colocar todos os usuarios ja existentes no sistema e no samba no banco de dados automaticamente.
Outra, quero tambem saber como posso fazer para colocar esse sistema de cadastramento para min, Administrador e outro sistema de recadastramento onde o proprio usuario possa entar no site e atualizar seu cadastro, ou seja, ao inicio de um novo semestre o usuario vai ao site e se recadastra, assim ele pode usar sua conta por mais um semestre, caso ele não se recadastre sua conta é bloqueada e depois de outro semestre sem recadastro sua conta é excluida!!
Não sei se minha ideia esta correta mais imaginei colocar mais alguns campos no db e ir incrementando ao final de cada semestre e zerar ao usuario se recadastrar, mais como faco para o proprio sistema incremetar e deletar a conta do usuario quando o campo chegar a dois?
#12Comentário enviado por netosdr em 03/08/2006 - 16:30h
Caro colega, essa outra parte dos scripts para alteração e exclusão de usuários, podes enviá-la para nós?
Obs: parabéns pelo artigo!
#13Comentário enviado por alyssoncma em 12/11/2006 - 16:55h
Blz Tucs?
Seguinte, olha o codigo que tenho... (ou melhor seu código..hehe)
//ADD O USUARIO NO LINUX
$adduser = "useradd -g alunos -d /home/$login -m -s /bin/bash $login |echo $login:$senha |chpasswd";
$comando = shell_exec($adduser);
Não estou utilizando o sudo pois vou cadastrar o aluno na maquina que vou estar logado como root.
Uso o ubuntu. Ele cria o usuário certinho. Mais nao cria a senha, quando vo criar um usuario no ubuntu (ou debian), ele pede a senha e uma confirmaçao. Será qe é por isso??? Se eu lterar a senha no usuario. Funciona perfeito, é só logar com o usuario criado.
Sabe como posso resolver???
Valeu Abraços
Obs: parabéns pelo artigo
#14Comentário enviado por liviocf em 28/06/2007 - 18:58h
Mesmo bem atrasado, gostaria de dizer parabéns pelo artigo!
Sobre esse mesmo tema tenho uma dúvida que parece boba, mas não consigo resolver!
Tenho que executar um comando no servidor! Tenho tudo pronto em php, mas o servidor não executa o comando que estipulo pra ele!
Se faço direto no shell funciona perfeitamente, mas quando executo via shell_exec("/local/comando ....") não funciona! Nem utilizando o sudo, como descrito no seu artigo!
Pra qualquer outro comando ele funciona!
Não sei o que pode ser!!
Se alguém puder me ajudar sobre isso, agradeço muito!!
Abraços
#15Comentário enviado por xploitx em 09/07/2007 - 11:44h
muito bom esse script. vlw ae estava precisando.
#16Comentário enviado por quartodazona em 19/08/2010 - 02:42h
A sintaxe correta para dar permissão no sudoers é esta abaixo:
pois você tem que separar os comandos que deseja atribuir ao usuário que irá utilizar sudo sem senha separados por vírgulas e com o caminho completo de onde está o comando.
#17Comentário enviado por quartodazona em 20/09/2010 - 07:53h
Caro amigo o seu método de criar usuários pelo browser é parecido com outro aqui do Viva o Linux, mas eu já me utilizei dos 2 e continuo tendo tendo problema, 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.
Alguém aí pode me ajudar?
#18Comentário enviado por vinny.freire em 20/09/2011 - 16:18h
Quando coloco permissões pro user www ele começa dar erro e não funciona.
O que será que pode ser?