2010-09-21 101 views
5

假设我想创建类似cPanel的工作方式,它使用系统中的用户名和密码。我将如何使用PHP对Linux用户和密码进行身份验证?

您可以在服务器上运行“passwd的用户,密码仍然会与cPanel和FTP工作(不一定是MySQL,但是你明白了吧)

我将如何做到这一点在PHP?除了在本地运行/ bin/su并从中运行外,我没有丝毫的想法。虽然如此,但它可能不准确..我通常有一些开发人员在子帐户上,或者在根目录上开发一些东西。

任何想法将不胜感激,谢谢! :)

+1

你想(1)使用系统用户名/密码进行身份验证,或者(2)以特定用户身份从网络服务器实际运行代码? – Wrikken 2010-09-22 00:01:02

+0

我想使用用户名和密码进行身份验证。谢谢 – Billy 2010-09-22 00:07:48

回答

6

PAM:http://pecl.php.net/package/PAM

在Debian中/'buntu包,很可能是因为安装PHP5-AUTH-PAM和使用功能一样简单:

pam_auth($username,$password,$error); 

虽然它似乎依赖古PHP4语法,因为我得到一个错误,如果我不被引用在调用时使用合格的弃用方式:

if(!pam_auth($username,$password,&$error)){ 
    echo 'No access, PAM said: '.$error; 
} 
+0

谢谢,我之前没有看过这个模块。我会试验一下,看看它是如何发展的。 – Billy 2010-09-22 00:16:42

+0

有点过时了,但是,这可以访问影子文件中的帐户吗?我想与服务器上已有的帐户同步,以简单地通过Web应用进行身份验证。 – kevingreen 2012-11-29 21:05:50

+1

是的,我可以在本地确认它是否可以在debian + php5-auth-pam + shadow文件中使用,因此可能在大多数基于Linux的osses上都是如此。 – Wrikken 2012-12-03 16:22:51

0

这不是真的清楚你要什么authe nticate。在任何情况下,你可以使用PAM与PHP: http://pecl.php.net/package/PAM

还有就是PHP函数: posix_getpwnam

你可以使用相当简单为好。

相关问题