gpt4 book ai didi

php - 从 PHP 在 ubuntu 中创建带密码的用户

转载 作者:行者123 更新时间:2023-12-04 19:20:45 26 4
gpt4 key购买 nike

我有这个 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'];
$fullname= escapeshellarg($user."-".$id);

echo $user;
echo $mem;
echo $id;
echo $pass;
echo "<br/>";

mkdir("/home/servers/".$fullname, 0, true);
$outputuser = shell_exec("sudo useradd -d /home/$fullname $fullname");
$outputpass = shell_exec('echo -e '.$pass.'\n'.$pass.'\n" | sudo passwd '.$fullname);

echo $outputpass;

}


?>

虽然密码不正确。当我从终端运行它时,我得到
输入新的 UNIX 密码:重新输入新的 UNIX 密码:passwd:身份验证 token 操作错误
现在肯定有一种更好的方法可以做到这一点,而无需将 useradd 和 passwd 都暴露为不需要 sudo 中的密码?

最佳答案

这不是答案,而是非常重要的警告。您的脚本可能允许用户完全访问您的服务器,因为他可以输入“../”作为 $fullname .不使用 escapeshellarg() 将用户输入作为参数传递是自杀。

解决您的问题可能是创建一些 crontab 任务,该任务将在每个定义的时间段从数据库创建用户。这样您的密码就不会被泄露。

关于php - 从 PHP 在 ubuntu 中创建带密码的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20152929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com