View previous topic :: View next topic |
Author |
Message |
netman Apprentice
Joined: 03 Oct 2003 Posts: 204 Location: France - Sud
|
Posted: Tue Aug 03, 2004 8:43 am Post subject: [PHP]Changement mot de pass [resolu] |
|
|
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
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
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 [/code]
Last edited by netman on Thu Aug 05, 2004 1:00 pm; edited 3 times in total |
|
Back to top |
|
|
Nemerid Tux's lil' helper
Joined: 14 Jul 2002 Posts: 90
|
Posted: Tue Aug 03, 2004 2:46 pm Post subject: |
|
|
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 |
|
|
netman Apprentice
Joined: 03 Oct 2003 Posts: 204 Location: France - Sud
|
Posted: Tue Aug 03, 2004 3:20 pm Post subject: |
|
|
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 |
|
|
dju` Retired Dev
Joined: 11 Feb 2003 Posts: 370
|
Posted: Wed Aug 04, 2004 2:07 pm Post subject: |
|
|
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 |
|
|
netman Apprentice
Joined: 03 Oct 2003 Posts: 204 Location: France - Sud
|
Posted: Thu Aug 05, 2004 6:39 am Post subject: |
|
|
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 . . .
Merci |
|
Back to top |
|
|
Nemerid Tux's lil' helper
Joined: 14 Jul 2002 Posts: 90
|
Posted: Thu Aug 05, 2004 7:39 am Post subject: |
|
|
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 :
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 |
|
|
netman Apprentice
Joined: 03 Oct 2003 Posts: 204 Location: France - Sud
|
Posted: Thu Aug 05, 2004 8:20 am Post subject: |
|
|
Alors la c t tout ce qu'il ya de plus clair
Franchemet merci pour tes explications desuite ca m'apparait beaucoup plus clair
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
le fichier shadow supporte plusieurs types de cryptages ?
Recapitulons pour voir si j'ai bien comprit avec un petit exemple
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 |
|
|
Nemerid Tux's lil' helper
Joined: 14 Jul 2002 Posts: 90
|
Posted: Thu Aug 05, 2004 9:22 am Post subject: |
|
|
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 |
|
|
netman Apprentice
Joined: 03 Oct 2003 Posts: 204 Location: France - Sud
|
Posted: Thu Aug 05, 2004 9:27 am Post subject: |
|
|
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
Par contre pour le fichier shadow comment je peux savoir quel cryptage il supporte ? |
|
Back to top |
|
|
netman Apprentice
Joined: 03 Oct 2003 Posts: 204 Location: France - Sud
|
Posted: Thu Aug 05, 2004 11:14 am Post subject: |
|
|
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 |
|
|
netman Apprentice
Joined: 03 Oct 2003 Posts: 204 Location: France - Sud
|
Posted: Thu Aug 05, 2004 11:20 am Post subject: |
|
|
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
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 |
|
|
netman Apprentice
Joined: 03 Oct 2003 Posts: 204 Location: France - Sud
|
Posted: Thu Aug 05, 2004 1:02 pm Post subject: |
|
|
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
Merci pour votre participation +++ |
|
Back to top |
|
|
dju` Retired Dev
Joined: 11 Feb 2003 Posts: 370
|
Posted: Fri Aug 06, 2004 7:16 am Post subject: |
|
|
Tout problème finit finalement par trouver une solution. |
|
Back to top |
|
|
|