有点像此的后续:使用 PHP 根据 /etc/shadow 验证用户身份的最安全方法?因为我在 Ubuntu 16.04 上没有看到任何相关内容。
我正在尝试通过 HTTP 对 Linux 帐户(Ubuntu 16.04)进行身份验证,PECL-PAM
但我遇到的问题是www-data
必须在shadow
组中才能进行身份验证/etc/shadow
。我发现的解决方法是使用mod_authnz_external
and pwauth
,但该组合的问题是,过去的身份验证没有我迄今为止所能找到的登录用户的身份。
我的最终目标是让用户通过 HTTP/PHP 进行身份验证,然后能够从其主目录(即/somedir/$user
)管理文件。我最初使用的是 Webmin,但遇到了 userminfilemin
模块的一些其他问题,因此改用了更自制的解决方案。
是否可以使用 PHP/PAM 包进行身份验证,而 www-data 不在影子组中?或者,如果不可能,是否可以使用mod_authnz_external
和pwauth
并与登录的用户启动会话?
答案1
mod_authnz_external
PHP_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()....)