我正在创建一个允许我在题字后自动创建用户的系统。通过这种方式,我制作了一个生成随机密码的 Perl 脚本,使用“mkpasswd”对其进行加密,然后使用“useradd”创建一个用户,然后将用户信息发送到数据库。
我搜索了文档,并尝试使用 php exec 函数来调用 Perl 程序。
$command = "/server/backoffice/scripts/usercreation.pl $username";
exec($command, $result);
print_r($result);
usercreation.pl 脚本在终端中运行良好,但由于未知原因,它无法在 php 中运行,没有任何反应,我知道问题来自 useradd 语法,或者如果不是来自 useradd 命令。返回的错误值为 255 <=> 0xff <=> -1 。
我认为问题来自 useradd 的 --password 选项,事实上,这个选项使用 mkpasswd 并且可能会干扰 shell 或其他类似的东西:p
Perl 程序使用的完整 useradd 命令:
system("/usr/sbin/useradd $username -m -d $home --expiredate $expire --shell $shell --gid $gid --password $c_password");
编辑: pastebin 上的 usercreation.pl 文件(已被截断为我们正在调查的部分): http ://pastebin.com/DgFdndXf
php 一: http: //pastebin.com/pQhADNzg
使用的 Web 服务器是 nginx/0.7.65。
使用的 php 版本是 PHP 5.3.3-1。
uname -a
Linux openco 2.6.35-32-generic #67-Ubuntu SMP Mon Mar 5 19:35:26 UTC 2012 i686 GNU/Linux
谢谢大家!