使用OS用户名/密码在PHP中进行身份验证?

时间:2009-08-13 22:44:20

标签: php authentication

我想知道是否有办法使用PHP(或者其他一些CGI,但最好是PHP)来验证用户的操作系统(在本例中为Linux,Debian 5)用户名和密码。可能?难?谢谢!

4 个答案:

答案 0 :(得分:4)

通常这种东西是特定于操作系统的,并且挂钩到现有的身份验证过程中。对于Linux,您可能想要查看PAM ...有一个PECL module for PAM可以帮助您完成此任务。我想你必须配置PAM以允许这种类型的身份验证,因此它可能需要一些系统管理工作。

答案 1 :(得分:1)

如果您在服务器上使用他们的登录凭据,则取决于如何处理身份验证(主要使用PAM后端之一)

那么最简单的方法就是使用http://pecl.php.net/package/PAM

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

尽管这是一个已有10年历史的问题,但今天我在搜索相同的问题时还是出现了。

万一它对任何人都有帮助,这是我为用例(在Raspberry Pi上的Debian)解决它的方法:

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

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