我有这个PHP代码
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if(!empty($_GET) && !empty($_GET['user']) && !empty($_GET['mem']) && !empty($_GET['id']) &&!empty($_GET['k'])) {
$user = $_GET['user'];
$mem = $_GET['mem'];
$id = $_GET['id'];
$pass = $_GET['k'];
$name = $user."-".$id;
$directory = "/home/servers/".$name;
$salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647));
echo "User: ".$user;
echo "<br/>";
echo "Memory: ".$mem;
echo "<br/>";
echo "ID: ".$id;
echo "<br/>";
echo "Pass: ".$pass;
echo "<br/>";
echo "Directory: ".$directory;
echo "<br/>";
echo "<br/>";
echo "name: ".$name;
echo "<br/>";
if (!file_exists($directory)) {
mkdir($directory, 0, true);
}
else {
echo "Dir already exists?";
}
$outputuser = shell_exec("sudo useradd -s /bin/false -d ".escapeshellarg($directory)." -p ".crypt($pass,$salt)." ".escapeshellarg($servername));
}
?>
现在当我运行页面时,我得到了这个输出
User: trotski94 Memory: 1024 ID: 1 Pass: test Directory: /home/servers/trotski94-1 name: trotski94-1 Dir already exists?
这是预料之中的。但是当我在ubuntu机器上登录时它说没有主目录,使用/ as home,为什么-d标志没有设置主目录?
答案 0 :(得分:0)
检查用户目录: cat / etc / passwd | grep trotski94
mayby escapeshellarg可能会破坏某些东西