Useradd do script PHP

1

é possível adicionar um usuário com script PHP?

    
por bagus 25.05.2013 / 22:43

3 respostas

0

Sobre sua segunda pergunta (a do título): para permitir a criação de usuários por meio de um script executado pelo servidor da Web, você deve conceder permissões de root ao servidor da Web - uma coisa muito perigosa .

Assim, embora seja possível (existem aplicativos de gerenciamento de sistemas baseados na web, como webmin ), é uma idéia ruim fazer isso com um script escrito por você.

NB: Eu não estou dizendo que usar webmin é seguro: -)

    
por guntbert 25.05.2013 / 23:01
0

Você pode fazer com que seu script PHP crie um arquivo contendo as informações do usuário sem exigir acesso root. Esta informação deve ser criptografada para que não fique nada nua.

Em seguida, você pode ter um script bash com acesso root, que monitora o diretório em que as novas informações de usuário serão criadas pelo seu script PHP. se um novo arquivo existir, ele descriptografa e cria o novo usuário e, em seguida, exclui o arquivo após a criação bem-sucedida do usuário (por isso, ele não fica lá depois de ter sido concluído). Você gostaria que ele fosse muito preciso sobre quais dados seu script bash procura e aceita. Além disso, certifique-se de higienizar todos os campos no formulário do usuário para minimizar a chance de injeção de código mal-intencionado.

Eu não usei, mas o inotify parece ter sido projetado para essa finalidade. link

Dessa forma, nada está acessando diretamente sua área raiz e você pode limitar o script bash a ser executado apenas se condições específicas forem atendidas, como quando um novo arquivo é criado, passa uma verificação de hash criada por seu script e contém os dados esperados. .. Deixe-nos saber como funciona e esperamos receber mais informações sobre a maneira mais segura de fazer isso.

Edit: Parece que o evento que você pode querer usar para inotify é IN_CREATE, que atuará quando um arquivo for criado no diretório assistido. Navegue pelo manual e tenho certeza de que você descobrirá uma maneira de fazer isso. link

Edit: Você também pode ter um único arquivo aberto e editado pelo script PHP. Você definitivamente tem opções aqui, mas não posso fingir saber qual é o melhor método.

    
por iyrin 26.05.2013 / 01:01
0

Asumming Apache está sendo executado em www-data user, execute visudo e adicione a seguinte linha:

www-data ALL=NOPASSWD:/usr/sbin/useradd

Agora, a partir do seu script PHP:

$username = "user1";
$password = "password1";
$cmd = "sudo /usr/sbin/useradd -m -p 'openssl passwd -1 $password' $username";
system($cmd);

Finalmente, apenas uma palavra de precaução, nunca faça isso em um ambiente de produção sem primeiro perceber as implicações de segurança ao fazer isso.

    
por Jaime Hablutzel 18.12.2017 / 20:07