Désolé de relancer ce sujet mais...
vraiment personne aurait une solution ??? 🙁
Si tu ne précises pas de nom de login, ça ne pourra pas fonctionner.
NAME
useradd - create a new user or update default new user information

SYNOPSIS
useradd [options] LOGIN
[...]
De plus vérifie si la commande useradd est bien dans le PATH ou utilise un chemin complet.
Bien evidement, il y a le login qui suit...
Pour ce qui est du PATH, quel est le chemin complet de la commande useradd ??
Et sachant que cette commande fonctionne sans passer par du php et ce, depuis n'importe quel répertoire, il ne devrait pas y avoir de problème dans le PATH, non?

De plus, comment résoudre cette erreur : "sudo: sorry, you must have a tty to run sudo" (afficher dans /etc/httpd/logs/error_log). Cette erreur a-t-elle bien un rapport avec mon problème?

Merci par avance !!
Salut,
si tu nous disais pour commencer ce que renvoie les trois fonctions php que tu as essayé ?

epo
Pour ce qui est du PATH, quel est le chemin complet de la commande useradd ??
Etant une commande d'administration il y a de fortes chances que ce soit /sbin ou /usr/sbin non ?

un simple "locate useradd" t'aurait renseigné de suite.
Iloyo wrote:Bien evidement, il y a le login qui suit...
Je ne suis pas encore devin.
Iloyo wrote:Pour ce qui est du PATH, quel est le chemin complet de la commande useradd ??
Le chemin complet est /usr/sbin/useradd.
De plus, comment résoudre cette erreur : "sudo: sorry, you must have a tty to run sudo" (afficher dans /etc/httpd/logs/error_log)
Configure sudo pour qu'il ne force pas l'utilisation d'un tty. Option requiretty à retirer.
Donc, j'ai modifié mon sudoers :
User_Alias PHP = apache, nobody

Cmnd_Alias CREATE_USERS = /usb/sbin/useradd
Cmnd_Alias DELETE_USERS = /usb/sbin/userdel

#Defaults    requiretty

PHP     ALL=(ALL)       NOPASSWD: CREATE_USERS, DELETE_USERS
puis, j'ai essayer de relancer mon script php d'origine puis en remplaçant "useradd" par "/usb/sbin/useradd", mais cela ne change rien: Mon utilisateur ne se crée pas!
J'ai tapé un peu vite.
Il s'agit de usr pas usb...
Je reprend,

Mon sudoers :
User_Alias PHP = apache, nobody

Cmnd_Alias CREATE_USERS = /usr/sbin/useradd
Cmnd_Alias DELETE_USERS = /usr/sbin/userdel

#Defaults    requiretty

PHP     ALL=(ALL)       NOPASSWD: CREATE_USERS, DELETE_USERS
Ma commande php :
               [...]
               $cmd = "sudo /usr/sbin/useradd -s /sbin/nologin -d /FTP/";         
               $cmd .=$groupe;
               $cmd .="/";
               $cmd .=$id;
               $cmd .=" ";
               $cmd .=$id; 
               $res=system($cmd,$num);
            echo "$res";    
                if ( $res!=0 )
                {
            echo "<br><b><big><big>Successful!!</big></big></b><br>";
        }
        else
        {
            echo "<br><b><big><big>Error</big></big></b><br>";
        }
               [...]
avec $id, $groupe des paramètres passer par methode GET depuis une page html !

En utilisant n'importe quelle commande ( $res=exec($cmd); , $res=system($cmd,$num); ou $res=shell_exec($cmd); ) le résultat retourné sur ma page est nul : hormis le message "Error" et quelques lignes écritent en html!

Voilà, j'pense que j'ai fais le tour des informations demandées... mais toujours aucun résultat positif!
Ne me dites tout de même pas qu'il s'agit d'une erreur inexplicable quand même... il y a bien une solution quelque part!?

... ayant épuisé toutes mes connaissances sur ce sujet, vous êtes mon dernier espoire !! :roll:
Iloyo wrote:Ne me dites tout de même pas qu'il s'agit d'une erreur inexplicable quand même... il y a bien une solution quelque part!?

... ayant épuisé toutes mes connaissances sur ce sujet, vous êtes mon dernier espoire !! :roll:
En même temps, on est pas vraiment sur un forum de programmeur, va plutôt sur developpez.com, ils sauront mieux te renseigner que nous je pense !

EDIT : d'autre part, on peut executer un script PHP dans une console (php script.php de mémoire), regarde ce que ça te renvoie comme message d'erreur 😉
Mais c clair ....
Il faut savoir ce que donnent les retours. C'est quoi les "quelques lignes html" ?
Est ce que tu as bien le display errors d'activé ?
As tu des messages dans les logs suite a la commande ?

epo
Je n'ai rien qui apparait dans les logs ( /etc/httpd/logs/error_log).
Pour ce qui est du "display errors", qu'il soit on ou off, cela ne change rien!

sinon, si vous voulez connaitre le script concernant la création, le voici :
<html>
<head>
<title>result</title>
</head>

<body>
<center>
<img style="width: 308px; height: 195px;" alt=""  src="./images/logo.JPG">
<br><br>
<b><blink>Resultat des operations demandees</blink></b>
<br><br><br>

<?php
    $res=0;
    $fonction=$_GET['fonction'];


    if ( $fonction=="creation" )
    {
        echo "Creation d'un nouvel utilisateur :<br><br>";
        
        $groupe=$_GET['groupe'];
        $id=$_GET['id'];
        $pwd=$_GET['pwd'];
        
        if ( strlen($pwd) < 6 ) { header("Location: " . $_SERVER["HTTP_REFERER"]); }

        echo "<b>--> Groupe :</b> $groupe<br>";
        echo "<b>--> ID :</b> $id<br>";
        echo "<b>--> Mot de passe :</b> $pwd<br>";
    
               $cmd = "sudo /usr/sbin/useradd -s /sbin/nologin -d /FTP/";             
               $cmd .=$groupe;
               $cmd .="/";
               $cmd .=$id;
               $cmd .=" ";
               $cmd .=$id; 
               $res=system($cmd,$num);
            echo "$res";    
                if ( $res!=0 )
                {
            echo "<br><b><big><big>Successful!!</big></big></b><br>";
        }
        else
        {
            echo "<br><b><big><big>Error</big></big></b><br>";
        }
    }
?>

<br><br>
[URL=javascript:window.history.go(-1)]Continue[/URL]

</center>
</body>
</html>