如何使用 PHP 通过 PAM 验证 Linux 帐户而不提供 www-data 影子

如何使用 PHP 通过 PAM 验证 Linux 帐户而不提供 www-data 影子

有点像此的后续:使用 PHP 根据 /etc/shadow 验证用户身份的最安全方法?因为我在 Ubuntu 16.04 上没有看到任何相关内容。

我正在尝试通过 HTTP 对 Linux 帐户(Ubuntu 16.04)进行身份验证,PECL-PAM但我遇到的问题是www-data必须在shadow组中才能进行身份验证/etc/shadow。我发现的解决方法是使用mod_authnz_externaland pwauth,但该组合的问题是,过去的身​​份验证没有我迄今为止所能找到的登录用户的身份。

我的最终目标是让用户通过 HTTP/PHP 进行身份验证,然后能够从其主目录(即/somedir/$user)管理文件。我最初使用的是 Webmin,但遇到了 userminfilemin模块的一些其他问题,因此改用了更自制的解决方案。

是否可以使用 PHP/PAM 包进行身份验证,而 www-data 不在影子组中?或者,如果不可能,是否可以使用mod_authnz_externalpwauth并与登录的用户启动会话?

答案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()....)

相关内容