useradd和php crypt()

时间:2010-09-28 14:00:19

标签: php

我需要你帮助解决这个令人沮丧的问题。

我正在运行:Debian Linux 5.0。使用webmin版本1.510。

当我使用webmin界面创建新用户并连接到pop3帐户时,一切都很有效。当我使用这个PHP代码生成一个新用户时:

$pass = crypt("user1");
shell_exec("sudo /usr/sbin/useradd user1 -g users -c \"user one\" -s /bin/sh -p $pass");

生成用户(和当前邮件帐户)就好了。但是,我无法登录此pop3帐户。每次我尝试,我都会收到验证错误。似乎我用crypt()生成的密码;是不对的,我可以通过观察它看出来,它看起来比系统生成的模式非常不同。

1 个答案:

答案 0 :(得分:1)

$allowed_salt = "abcdefghiklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789";
$salt = substr($allowed_salt, rand(0,strlen($allowed_salt)-1), 1).substr($allowed_salt, rand(0,strlen($allowed_salt)-1), 1);
$pass = crypt("user1",$salt); 
shell_exec("sudo /usr/sbin/useradd user1 -g users -c \"user one\" -s /bin/sh -p $pass");