Automatizar a criação de usuários [fechada]

2

Eu tenho um site para meus alunos e está sendo executado no Ubuntu 14.04. Quando meus alunos se registram no meu site, eu armazeno informações do usuário em um banco de dados MySQL.

Eu gostaria de dar aos meus alunos um site na minha instalação do Ubuntu, ao se registrar no meu site, e eu gostaria que isso fosse automatizado. Minha pergunta é - Posso de alguma forma usar os dados direto do MySQL DB para dar-lhes um subdomínio (username.mydoamin.com) no meu Ubuntu ou posso executar comandos shell no Ubuntu a partir do PHP, e automatizar o que estou fazendo manualmente agora?

    
por Bjarke Bundgaard 11.04.2015 / 20:59

2 respostas

1
  

Posso executar comandos shell no Ubuntu a partir do PHP e automatizar o que estou fazendo manualmente agora?

Você pode executar comandos do shell a partir de PHP usando a função shell_exec() ou usando o operador ' ' (backtick): se você estiver executando PHP & lt; 5.4.0, primeiro certifique-se de desativar modo de segurança e, em seguida, em PHP script você pode usar qualquer uma dessas sintaxes:

  • $return = shell_exec('<shell_command>');
  • $return = '<shell_command>';

A menos que você queira capturar valores de retorno de comandos únicos, a maneira mais direta de fazer o que você está pedindo seria condensar tudo o que você está fazendo manualmente no shell em um bash independente (ou o que for ) script a ser chamado uma vez usando qualquer um desses métodos. Por exemplo, a sintaxe de um script bash seria:

  • $return = shell_exec('bash script.sh');
  • $return = 'bash script.sh';

Para passar parâmetros para o script (por exemplo, o valor de uma variável $username ):

  • $return = shell_exec("bash script.sh '$username'");
  • $return = 'bash script.sh '$username'';

Para recuperar os parâmetros transmitidos no script bash (por exemplo, o valor de uma variável $username passada com o método acima):

#!/bin/bash

# ...
username=
# ...

Ou simplesmente faça referência a quando necessário, por exemplo:

#!/bin/bash

# ...
echo ""
# ...
    
por kos 11.04.2015 / 22:55
0

Como acompanhamento de minha própria pergunta, elaborarei com minha experiência. Eu fiz o trabalho de execução do Shell a partir do PHP, mas tive grandes problemas de segurança com a solução. Isso foi um erro MAJOR da minha mão que eu não vi isso no começo.

Para eliminar os riscos de segurança, criei um script que parecia ativar os usuários na tabela de usuários. Se o usuário estava ativo E não um usuário linux, então o usuário deve ser criado no meu linux, um usuário do banco de dados é criado, um subdomínio é criado e o ssh é bloqueado para o usuário. Eu configurei uma tarefa cron executando a cada 60 minutos e, após a criação do usuário, um e-mail é enviado ao usuário com informações de registro.

Isso elimina muitos riscos de segurança (não todos).

Bjarke

    
por Bjarke Bundgaard 16.04.2015 / 08:20