www-data 섀도우를 제공하지 않고 PHP를 사용하여 PAM을 통해 Linux 계정을 인증하는 방법

www-data 섀도우를 제공하지 않고 PHP를 사용하여 PAM을 통해 Linux 계정을 인증하는 방법

이에 대한 후속 조치와 같은 것 :PHP를 사용하여 /etc/shadow에 대해 사용자를 인증하는 가장 안전한 방법은 무엇입니까?Ubuntu 16.04와 관련된 내용이 표시되지 않기 때문입니다.

HTTP를 통해 Linux 계정(Ubuntu 16.04)에 인증하려고 하는데 PECL-PAM문제는 인증하려면 그룹 www-data에 속해야 한다는 것입니다 . 내가 찾은 해결 방법은 다음을 사용하는 것이지만 해당 조합의 문제점은 지금까지 찾을 수 있는 것 중 과거 인증에 로그인한 사용자의 신원이 없다는 것입니다.shadow/etc/shadowmod_authnz_externalpwauth

/somedir/$user나의 최종 목표는 사용자가 HTTP/PHP를 통해 인증하고 홈 디렉터리(예:)에서 파일을 관리 할 수 있도록 하는 것입니다 . 나는 원래 Webmin을 사용하고 있었지만 fileminusermin 모듈과 관련된 다른 문제가 발생하여 더 많은 홈브류 솔루션으로 전환했습니다.

www-data가 섀도우 그룹에 속하지 않고 인증을 위해 PHP/PAM 패키지를 사용할 수 있습니까? 아니면 가능하지 않은 경우 mod_authnz_externalAND를 사용하여 pwauth로그인한 사용자와 세션을 시작할 수 있습니까 ?

답변1

mod_authnz_externalPHP_AUTH_USER이 변수는 사용자가 성공적으로 인증되면 설정됩니다.

다음과 같이 세션을 시작할 수 있습니다.

<?php

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

답변2

토큰/검증에 대한 액세스를 처리하기 위해 상자에서 실행되는 기존 서비스를 사용하는 것이 더 간단하고 안전하지 않습니까? (ssh2_auth_password(), imap_open()....)

관련 정보