Script d'ajout d'utilisateur linux

Signaler
Messages postés
23
Date d'inscription
lundi 31 octobre 2005
Statut
Membre
Dernière intervention
19 décembre 2005
-
Messages postés
23
Date d'inscription
lundi 31 octobre 2005
Statut
Membre
Dernière intervention
19 décembre 2005
-
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

Messages postés
23
Date d'inscription
lundi 31 octobre 2005
Statut
Membre
Dernière intervention
19 décembre 2005

Ben, je croyais qu'il y aurai des suggestions! Mais que ce passe t'il? Je n'ai pas été assez clair???
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
16
salut,



un truc du genre :



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

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

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

pclose($passwd);

ShareVB
Messages postés
23
Date d'inscription
lundi 31 octobre 2005
Statut
Membre
Dernière intervention
19 décembre 2005

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???
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
16
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
Messages postés
23
Date d'inscription
lundi 31 octobre 2005
Statut
Membre
Dernière intervention
19 décembre 2005

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!
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
16
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
Messages postés
23
Date d'inscription
lundi 31 octobre 2005
Statut
Membre
Dernière intervention
19 décembre 2005

J'ai quelques rapports a finir et j'essaye ce que tu m'a dit!
Merci encore!
Messages postés
23
Date d'inscription
lundi 31 octobre 2005
Statut
Membre
Dernière intervention
19 décembre 2005

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!
Messages postés
23
Date d'inscription
lundi 31 octobre 2005
Statut
Membre
Dernière intervention
19 décembre 2005

J'ai l'erreur suivante quand j'utilise les functions setuid():
Fatal error: Call to undefined function: posix_setuid() in c:\program files\...
Messages postés
23
Date d'inscription
lundi 31 octobre 2005
Statut
Membre
Dernière intervention
19 décembre 2005

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!