假设我想创建类似cPanel的工作方式,它使用系统中的用户名和密码。我将如何使用PHP对Linux用户和密码进行身份验证?
您可以在服务器上运行“passwd的用户,密码仍然会与cPanel和FTP工作(不一定是MySQL,但是你明白了吧)
我将如何做到这一点在PHP?除了在本地运行/ bin/su并从中运行外,我没有丝毫的想法。虽然如此,但它可能不准确..我通常有一些开发人员在子帐户上,或者在根目录上开发一些东西。
任何想法将不胜感激,谢谢! :)
假设我想创建类似cPanel的工作方式,它使用系统中的用户名和密码。我将如何使用PHP对Linux用户和密码进行身份验证?
您可以在服务器上运行“passwd的用户,密码仍然会与cPanel和FTP工作(不一定是MySQL,但是你明白了吧)
我将如何做到这一点在PHP?除了在本地运行/ bin/su并从中运行外,我没有丝毫的想法。虽然如此,但它可能不准确..我通常有一些开发人员在子帐户上,或者在根目录上开发一些东西。
任何想法将不胜感激,谢谢! :)
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;
}
谢谢,我之前没有看过这个模块。我会试验一下,看看它是如何发展的。 – Billy 2010-09-22 00:16:42
有点过时了,但是,这可以访问影子文件中的帐户吗?我想与服务器上已有的帐户同步,以简单地通过Web应用进行身份验证。 – kevingreen 2012-11-29 21:05:50
是的,我可以在本地确认它是否可以在debian + php5-auth-pam + shadow文件中使用,因此可能在大多数基于Linux的osses上都是如此。 – Wrikken 2012-12-03 16:22:51
这不是真的清楚你要什么authe nticate。在任何情况下,你可以使用PAM与PHP: http://pecl.php.net/package/PAM
还有就是PHP函数: posix_getpwnam
你可以使用相当简单为好。
你想(1)使用系统用户名/密码进行身份验证,或者(2)以特定用户身份从网络服务器实际运行代码? – Wrikken 2010-09-22 00:01:02
我想使用用户名和密码进行身份验证。谢谢 – Billy 2010-09-22 00:07:48