Como autenticar contas do Linux com o PAM usando PHP sem fornecer a sombra www-data

1

Classifique como uma continuação para isto: Uma maneira mais segura de autenticar usuários contra o / etc / shadow usando PHP? e porque não houve nada relevante que eu tenha visto no Ubuntu 16.04.

Estou tentando autenticar contas Linux (Ubuntu 16.04) via HTTP com PECL-PAM , mas o problema é que www-data tem que estar em shadow group para autenticar em relação a /etc/shadow . O trabalho que eu encontrei foi usar mod_authnz_external e pwauth , mas o problema com essa combinação é que a autenticação passada não tem identidade para o usuário logado que eu consegui encontrar até agora.

Meu objetivo final é fazer com que os usuários se autentiquem via HTTP / PHP e possam gerenciar os arquivos de seu diretório pessoal (ou seja, /somedir/$user ). Eu estava usando originalmente o Webmin, mas encontrei alguns outros problemas com o módulo usermin filemin , então mudei para uma solução mais caseira.

É possível usar o pacote PHP / PAM para autenticar sem que o www-data esteja no grupo de sombra? Ou, se isso não for possível, é possível usar o mod_authnz_external e o pwauth e iniciar uma sessão com o usuário que efetuou login?

    
por brianforan 26.01.2017 / 19:13

1 resposta

0

mod_authnz_external define a variável PHP_AUTH_USER quando um usuário foi autenticado com êxito.

Você pode iniciar uma sessão assim:

<?php

if (isset($_SERVER['PHP_AUTH_USER'])) {
    // Your code which uses the username set in '$_SERVER['PHP_AUTH_USER']'
    // to set up a session.
}
    
por 11.12.2017 / 04:10