Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[PHP]Changement mot de pass [resolu]
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
netman
Apprentice
Apprentice


Joined: 03 Oct 2003
Posts: 204
Location: France - Sud

PostPosted: Tue Aug 03, 2004 8:43 am    Post subject: [PHP]Changement mot de pass [resolu] Reply with quote

Voila je me fait une interface d'administration sur mon serveur de messagerie histoire que le jour ou je parte ils soient pas dans la merde pour administrer le moulin :D

Je cherche modifier le mot de passe d'un user local au serveur mais je pense que je vais etre confronte a un pb :

Dans la commande "passwd user" apres il me demande de rentrer le pass et de confirmer . . .

Je compter envoyer ma commande avec
Code:
$output = shell_exec('passwd $user');


Mais apres comment je fait pour envoyer mon mot de passe ?

Autre petite question au passage car je sent le pb arriver gros comme une montagne :D

Mon serveur apache se lance avec le user apache donc pas de droits elevés . . .

Me faut etre en root pour pouvoir reset le pass des autres je me sort comment de cette merde :D[/code]


Last edited by netman on Thu Aug 05, 2004 1:00 pm; edited 3 times in total
Back to top
View user's profile Send private message
Nemerid
Tux's lil' helper
Tux's lil' helper


Joined: 14 Jul 2002
Posts: 90

PostPosted: Tue Aug 03, 2004 2:46 pm    Post subject: Reply with quote

Il faut utiliser une autre méthode qui n'est pas interactive avec la console. Le mieux est de modifier directement les fichiers /etc/passwd et /etc/shadows.
Je ne pense pas que expect soit disponible avec php.
Back to top
View user's profile Send private message
netman
Apprentice
Apprentice


Joined: 03 Oct 2003
Posts: 204
Location: France - Sud

PostPosted: Tue Aug 03, 2004 3:20 pm    Post subject: Reply with quote

vi pourquoi pas mais comment je fait pour generer le cryptage de mon password pour le mettre dans le fichier /etc/shadow ?
Back to top
View user's profile Send private message
dju`
Retired Dev
Retired Dev


Joined: 11 Feb 2003
Posts: 370

PostPosted: Wed Aug 04, 2004 2:07 pm    Post subject: Reply with quote

a mon avis, tu peux écrire un script (sh, perl...) qui soit appelle passwd, soit fait la modif de /etc/passwd, que tu SUID root et que tu appelles depuis ton script PHP. attention à bien le protéger pour que ce soit uniquement apache qui puisse l'exécuter.
Back to top
View user's profile Send private message
netman
Apprentice
Apprentice


Joined: 03 Oct 2003
Posts: 204
Location: France - Sud

PostPosted: Thu Aug 05, 2004 6:39 am    Post subject: Reply with quote

Hum toutes vos idées me plaisent bien mais je c pas du tout comment le mettre en oeuvre . . .

Un petit exemple ou un lien interessant serait pas de refus . . . :D

Merci
Back to top
View user's profile Send private message
Nemerid
Tux's lil' helper
Tux's lil' helper


Joined: 14 Jul 2002
Posts: 90

PostPosted: Thu Aug 05, 2004 7:39 am    Post subject: Reply with quote

Pour crypter, tu peux très bien utiliser php pour faire ça. Il n'y a aucun probleme, par exemple pour crypter en md5, tu as la fontion md5.

Code:

$crypt = md5($passe) ;


Je pense que tu peux aussi crypter en sha.

Sinon pour ce qui est de l'idée de dju, il signifiait que tu écrives cette fonctionnalité dans un autre langage qui traite les chaines plus facilement que le php ( en perl ou en python par exemple). Ecris ce script et regarde s'il marche. Ensuite, il te parlait de lui offrir les droit suid root. C'est à dire que tu vas donner à la possibilité à un utilisateur quelconque (et la l'utilisateur avec lequel tu lances ton serveur web, apache par exemple) de lancer un script avec les droits root.

Pour se faire, c'est très facile :
Code:

chmod +s monscript


Ensuite, à partir de php, tu lances la commande exec vers ton script et ça devrait fonctionner, pour autant que ton script est valable :) (En lui passant par exemple en argument le nom du login et le mot de passe crypté).

En espérant que cela aura pu t'aider un peu.


Last edited by Nemerid on Thu Aug 05, 2004 9:25 am; edited 1 time in total
Back to top
View user's profile Send private message
netman
Apprentice
Apprentice


Joined: 03 Oct 2003
Posts: 204
Location: France - Sud

PostPosted: Thu Aug 05, 2004 8:20 am    Post subject: Reply with quote

Alors la c t tout ce qu'il ya de plus clair :D

Franchemet merci pour tes explications desuite ca m'apparait beaucoup plus clair :D

Juste un petit detail en ce qui concerne le suid root . . .
Seul ceux qui auront le roit +x pourront lancer le script c ca?

donc si je fais un
Code:
chown monuser:mongrp monscript
chmod +x monscript
chmod +s monscript


seul monuser et mongrp pourront lancer le script avec des droits root ?

edit : pis en fait un autre detail sur le cryptage :D
le fichier shadow supporte plusieurs types de cryptages ?
Recapitulons pour voir si j'ai bien comprit avec un petit exemple :D

Code:
$crypt = md4($crypt);   <--- la je crypte donc mon mdp

ensuite j'appelle mon script avec

chpass $login $crypt

qui va me faire un truc genre

useradd $1 -p $2

et la mon user est créé avec son mdp ?
Back to top
View user's profile Send private message
Nemerid
Tux's lil' helper
Tux's lil' helper


Joined: 14 Jul 2002
Posts: 90

PostPosted: Thu Aug 05, 2004 9:22 am    Post subject: Reply with quote

Je confirme, tu as très bien compris et c'est exactement ça.

Vérifie par contre si ton /etc/shadow supporte par exemple bien l'encryptage en md5. Enfin, pour ma part, il me semble que c'est le cas.

Pour valider ton utilisateur, il faut travailler sur deux fichiers si ton utilisateur de n'est pas créé. /etc/password et /etc/shadows, mais le /etc/shadows suffit si tu veux juste changer le mot de passe de ton utilisateur.
Back to top
View user's profile Send private message
netman
Apprentice
Apprentice


Joined: 03 Oct 2003
Posts: 204
Location: France - Sud

PostPosted: Thu Aug 05, 2004 9:27 am    Post subject: Reply with quote

ouais ca m'apparait bien je suis en train de finaliser pour le moment les scripts de tests des users pour etre sur de pas essayer de creer un user deja existant :D

Par contre pour le fichier shadow comment je peux savoir quel cryptage il supporte ?
Back to top
View user's profile Send private message
netman
Apprentice
Apprentice


Joined: 03 Oct 2003
Posts: 204
Location: France - Sud

PostPosted: Thu Aug 05, 2004 11:14 am    Post subject: Reply with quote

Hum j'ai un petit soucis encore . . .

quand je lance mon script apache me sort ca :

Code:
sh: line 1: ./scripts/newuser.sh: Permission denied


Voici les droits :

Code:
-rwSrwS---    1 apache   apache        140 aoû  5 12:25 newuser.sh
-rwSrwS---    1 apache   apache         33 aoû  5 12:30 rmuser.sh


Est-ce que c'est normal et est-ce que j'ai loupe qlq chose . . .

ou alors c cense marche comme ca ?

parce qu'en appliquant le chmod +s et bien mon +x il s'en va et je peux plus lance le script non plus en root . . .
Back to top
View user's profile Send private message
netman
Apprentice
Apprentice


Joined: 03 Oct 2003
Posts: 204
Location: France - Sud

PostPosted: Thu Aug 05, 2004 11:20 am    Post subject: Reply with quote

Hop j'ai evolue un peu t seul et maintenant je suis a ca :

Code:
useradd: PAM authentication failed
mkdir: cannot create directory `/home/test2': Permission denied
mkdir: cannot create directory `/home/test2/.maildir': No such file or directory
chown: `test2': invalid user
chmod: failed to get attributes of `/home/test2': No such file or directory


En fait j'ai tt simplement fait un chmod +sx :D

Mais bon la j'ai un autre pb . . . .

je vous met le contenu de mon script :

Code:
useradd -d /home/$1 -g messagerie -s /bin/false -p $2 $1
mkdir /home/$1
mkdir /home/$1/.maildir
chown -R $1 /home/$1
chmod 0600 /home/$1 -R


Voila si vous avez une idée . . .
Back to top
View user's profile Send private message
netman
Apprentice
Apprentice


Joined: 03 Oct 2003
Posts: 204
Location: France - Sud

PostPosted: Thu Aug 05, 2004 1:02 pm    Post subject: Reply with quote

bon apres qlq recherches sur le net j'ai fini par decouvrir que ben ca pouvais pas marcher . . .

En fait pour etre plus precise le SUID ne marche pas pour tout ce qui est script car il est ignore et c'est celui du bash lance qui prend le pas . . .

alors meme si le fichier a un suid de root si le bash a celui d'un user qlconque c ce dernier qui prend le pas . . .

Donc j'ai choisi de le faire par sudo, j'avais encore jamais essaye et a vrai dire ca marche du tonnerre de dieu :D

Merci pour votre participation +++
Back to top
View user's profile Send private message
dju`
Retired Dev
Retired Dev


Joined: 11 Feb 2003
Posts: 370

PostPosted: Fri Aug 06, 2004 7:16 am    Post subject: Reply with quote

Tout problème finit finalement par trouver une solution.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum