在PHP中使用操作系统用户名/密码进行身份验证?

6

我想知道是否有一种方法可以使用PHP(或者其他CGI,但最好是PHP)来验证用户的操作系统(在这种情况下是Linux,Debian 5)用户名和密码。可能吗?难吗?谢谢!


我不确定这个问题确切地属于哪里,但它肯定涉及到Serverfault的职责范围,所以也许值得在那里探讨一下。 - David Thomas
@ricebowl - 我认为在两个平台上都发帖是值得的。利用操作系统级别的身份验证机制绝对属于编程领域。另一方面,特定操作系统提供的机制则属于服务器管理领域。 - zombat
4个回答

4
通常这种东西是特定于操作系统的,并且会钩入现有的身份验证过程。对于Linux,您可能需要查看PAM... 有一个PAM PECL模块可以帮助您完成此操作。我想您需要配置PAM以允许此类型的身份验证,因此可能需要进行一些系统管理工作。

1

如果您指的是使用服务器上的登录凭据,那么这取决于身份验证的处理方式(通常使用其中一个PAM后端)

然后最简单的方法是使用http://pecl.php.net/package/PAM


0

唯一的方法是使用php exec()命令执行某种登录。

我不是系统管理员,所以不知道该命令是什么,但如果您能找到一个登录命令,您可以使用PHP传递该命令,然后解析结果。


0

虽然这是一个十年前的问题,但当我今天搜索同样的问题时,它出现了。

如果有人需要帮助,以下是我为我的用例(在树莓派上的Debian)解决它的方法:

function checkLogin($user, $password) {
    return exec("echo $password | su $login -c 'echo Yes'") == 'Yes';
}

毫无疑问,它可以得到改进(例如对$user/$password值进行安全检查),但我分享它是因为它可能会帮助某些人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接