Modifier le fichier .htpasswd via php

Fermé
xunil2003 Messages postés 761 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 mars 2024 - Modifié par xunil2003 le 5/07/2012 à 09:59
xunil2003 Messages postés 761 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 mars 2024 - 5 juil. 2012 à 15:50
Bonjour,

Je cherche a modifier mon fichier .htpasswd avec ce script php

$command="htpasswd -nb /var/www/maison/N4/.htpasswd xunil2003 ".$passwd2."".$passwd1; 
exec($command,$res); 
echo $res[0]; ;


Les options de htpasswd
        htpasswd [-cmdpsD] passwordfile username
        htpasswd -b[cmdpsD] passwordfile username password

        htpasswd -n[mdps] username
        htpasswd -nb[mdps] username password
 -c  Create a new file.
 -n  Don't update file; display results on stdout.
 -m  Force MD5 encryption of the password.
 -d  Force CRYPT encryption of the password (default).
 -p  Do not encrypt the password (plaintext).
 -s  Force SHA encryption of the password.
 -b  Use the password from the command line rather than prompting for it.
 -D  Delete the specified user.


Comme le terminal
root@debian:/var/www/maison/N4# htpasswd .htpasswd  xunil2003 
New password: 
Re-type new password: 
Updating password for user xunil2003 
root@debian:/var/www/maison/N4#


une idée ?

Merci
A voir également:

3 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
5 juil. 2012 à 10:17
a mon avis il doit y avoir un pb de droits sur le fichier htpasswd

car depuis la console tu es en root alors que depuis php tu es apache
il faudrait modifier par chmod, mais n'est ce pas dangereux d'autoriser ainsi la modif par php d'un fichier sensé sécuriser ?
0
xunil2003 Messages postés 761 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 mars 2024 14
Modifié par xunil2003 le 5/07/2012 à 10:40
Avec dolphin j'ai modifier les droits pour faire des tests de .htpasswd
j'ai donné tout les droits execution, ecriture, lecture a tous et au groupe.

avec ceci
$command="htpasswd -nb /var/www/maison/N4/.htpasswd ".$user0."".$passwd1;  
exec($command,$res); 
echo $res[0]; 


L'echo affiche de "echo $res[0];" ;
/var/www/maison/N4/.htpasswd:Wip0.9TPP/G2M


Mais ca marche pas.

Merci.
0
xunil2003 Messages postés 761 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 mars 2024 14
5 juil. 2012 à 15:50
Bonjour,

Finalement j'ai fait comme ceci pour modifier le mot de passe
		if(isset($_POST['update'])) 
		{ 
exec("htpasswd -D /var/www/maison/N4/.htpasswd $user2");
sleep (5);
exec("htpasswd -b /var/www/maison/N4/.htpasswd $user2 $mdp");
echo "vous devez redemarrer le navigateur";
}


Je ne comprend pas pourquoi je ne peut pas modifier directement le mot de passe de l'utilisateur
exec("htpasswd -b /var/www/maison/N4/.htpasswd $user2 $mdp");

je suis obligé de le supprimer
exec("htpasswd -D /var/www/maison/N4/.htpasswd $user2");

puis de le créer
exec("htpasswd -b /var/www/maison/N4/.htpasswd $user2 $mdp");

bizarre non ?

Merci
0