【发布时间】:2014-06-21 14:25:35
【问题描述】:
我正在尝试使用来自另一台服务器的 PHP 将用户添加到我的 Ubuntu 虚拟机 (Microsoft Azure)。
这是我的代码。
PHP 代码:
//including phpseclib
include('Net/SSH2.php');
//Username and Password from form
$username = $_POST['user'];
$password = $_POST['pass'];
//connecting to azure vm using ssh
$ssh = new Net_SSH2('myservername.cloudapp.net:22');
$ssh->login('myuserid', 'mypassword') or die("Login failed");
$ssh->getServerPublicHostKey();
$cmd = "sudo useradd -d /home/$username -p $(perl -e'print crypt(\"$password\", \"cu\")') $username";
$cmdr = $ssh->exec($cmd);
用户创建成功,但是当我使用新创建的用户名和密码使用 putty 登录服务器时,它显示“访问被拒绝”
请帮忙,我哪里出错了?
【问题讨论】:
-
您对执行此代码的文件有什么权限?
-
php 文件在我的本地主机上...如果您查看我的代码...我正在使用我的管理员 ID 登录到我的 azure 服务器...
-
文件权限不是问题...即使我登录到我的root帐户并直接在putty的终端中运行命令...我遇到了同样的问题...用户是已创建但我无法登录..
-
我还注意到,如果我通过运行“$passwd username”手动更改密码,那么我可以登录...所以我最好的猜测是“-p”中有问题useradd 命令的参数...
标签: php linux ubuntu azure ubuntu-12.04