Script d'ajout d'utilisateur linux

cfoufa Messages postés 23 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 19 décembre 2005 - 23 nov. 2005 à 00:36
cfoufa Messages postés 23 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 19 décembre 2005 - 3 déc. 2005 à 16:52
Bonjour! J'ai deja posté une question sur le sujet. J'ai eu un debut de reponse mais je bloque toujours! Je vais essayer d'etre le plus clair possible dans l'ennocé de mon problème:
Je souhaite mettre au point un script PHP qui automatise l'ajout d'utilisateurs dans un systeme linux a travers un formulaire d'enregistrement (comme quand on s'inscrit a Yahoo etc.). Pour cela j'utilise un formulaire simple d'ou je recupere pour le moment un username et un pass. Puis je lance la commande adduser de PHP a travers la commande exec en lui donnant comme parametre username et d'autre informations comme le groupe etc. Jusque la, rien d'extraordinaire. Le probleme se corse quand il faut assigner un mot de passe a l'utilisateur. Avec exec on peu appellé passwd en lui donnant comme parametre le nom user. Les connaisseur linux sauront qu'executé dans le shell, cette comande revient au depart en affichant New Uniw Password: et attend la saisie du pass, puis après saisie et validation attend une re-saisie pour confirmation. C'est cette partie ardue qui consiste a assigner le mot de passe qui me bloque!
Si quelqu'un a des suggestions, des idées, qu'il me l'ai fasse savoir!
J'espère que je n'ai pas été trop long!
Merci d'avance!

10 réponses

cfoufa Messages postés 23 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 19 décembre 2005
23 nov. 2005 à 14:04
Ben, je croyais qu'il y aurai des suggestions! Mais que ce passe t'il? Je n'ai pas été assez clair???
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
27 nov. 2005 à 21:42
salut,



un truc du genre :



$passwd=popen('/usr/bin/passwd '.$user,'w');

fputs($passwd,$pass."\n");

fputs($passwd,$pass."\n");

pclose($passwd);

ShareVB
0
cfoufa Messages postés 23 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 19 décembre 2005
28 nov. 2005 à 08:52
ShareVB tu propose d'editer le fichier passwd solution que j'ai éliminer au depart pour deux raison:
-N'importe qui ne peux pas ecrire dans un fichier passwd, donc il faut modifier ces droit et la gros risque de sécurité pour le server!
-Si on ne modifie pas les droit, pas d'édition possible car les scripts ne s'executent pas en root!
Si je me le trompe tu me le dit!
PS: le fichier passwd que je connais se trouve dans /etc/passwd, c'est quoi ce fichier /usr/bin/passwd???
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
29 nov. 2005 à 10:20
salut,



ne dis-tu pas que tu veux utiliser la commande passwd (dont le chemin est /usr/sbin/passwd) ?

popen c'est comme exec sauf que ca te permet de faire un pipe en lecture ou écriture entre ton prog et la commande...



de toute façon effectivement, il ne faut jamais éditer /etc/shadow ou /etc/passwd à la main



par contre, je ne vois pas comment tu peux utiliser la commande adduser
et passwd en n'ayant pas les droits de root mais ceux d'apache...


ShareVB
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cfoufa Messages postés 23 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 19 décembre 2005
29 nov. 2005 à 18:17
Merci ShareVB!
Je suis encore dessus! Si je trouve le moyen de le faire ben tu sera le premier a en être informé!
Merci pour cet échange instructif (ça me change!)!
Bon courage dans ce que tu fais!
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
29 nov. 2005 à 21:47
salut,



je vois une solution :

-> tu crées ton script en le chown à root dans un dossier admin avec un .htaccess

-> tu le setuid

-> tu vérifies tranquillement le username et le pass pour éviter les tentatives de hack en ligne de commande (preg_xxx)

-> tu utilises la fonction posix_setuid pour acquérir les droits de
root (http://fr2.php.net/manual/fr/function.posix-setuid.php)

->tu remets tes privilèges à apache



ca doit être assez sur je pense

ShareVB
0
cfoufa Messages postés 23 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 19 décembre 2005
29 nov. 2005 à 23:23
J'ai quelques rapports a finir et j'essaye ce que tu m'a dit!
Merci encore!
0
cfoufa Messages postés 23 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 19 décembre 2005
3 déc. 2005 à 15:04
Tu peux m'aider!!!
Le script que tu m'a donnée est okay, mais j'ai des problème pour aquérir les droit root pour l'excuter! De plus amples explications de la procèdure a suivre serait les bienvenus!
Merci!
0
cfoufa Messages postés 23 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 19 décembre 2005
3 déc. 2005 à 15:52
J'ai l'erreur suivante quand j'utilise les functions setuid():
Fatal error: Call to undefined function: posix_setuid() in c:\program files\...
0
cfoufa Messages postés 23 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 19 décembre 2005
3 déc. 2005 à 16:52
Bon l'extention Posix n'ai pas disponible sous Windows. Le problème c'est que même sous linux (mandrake 8.1), j'ai le même message d'erreur pourtant ils disent que l'extention est activée par defaut!
0
Rejoignez-nous