Modifier le fichier .htpasswd via php

xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   -  
xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   -
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

3 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
  2. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    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
  3. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    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