У меня есть этот PHP кодСоздание пользователя с паролем в убунту из 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;
}
?>
пароль Isnt работает правильно, хотя. когда я запускаю его с терминала, я получаю
Enter new UNIX password: Retype new UNIX password: passwd: Authentication token manipulation errorтеперь, конечно, лучший способ сделать это, не подвергая как useradd И passwd, не нуждающимся в паролях в sudo?
right Я вижу, но нет ли способа сделать это без необходимости этого passwd вообще (возможно, используя флаг -p в useradd, но я понятия не имею, как обрабатывать шифрование) –