[resolu] probleme access denied

Forum dédié à la distribution du même nom et que vous pourrez télécharger sur http://www.contribs.org. La nouvelle version de cette distribution se nomme SME Server

Modérateur: modos Ixus

[resolu] probleme access denied

Messagepar dway » 18 Juil 2005 14:31

Salut,

alors voila, j'ai installé SME 6.0.1-01 puis j'ai appliqué le script automatique de rodolph (celui la), tout a fonctionné a merveille.
J'accede au phpmyadmin fraichement installé à l'adresse https://essai.mon_domaine.org/phpmyadmin où je peux voir les 3 utilisateurs de la base sql :
- root (host = localhost) avec tous les privilèges
- root (host = sme) avec tous les privilèges
- horde (host = localhost) avec aucun privilège

Mon probleme vient du fait que je ne peux pas me connecter a mysql avec la commande "mysql -u root -p", il me dit access denied for user root@localhost (using password = yes).
Bizarre, puisque c'est bien le pass root que je tappe.

J'ai regardé dans le config.inc.php de phpmyadmin pr voir avec quel pass il se connecte, et la variable $cfg['servers'][$i]['password'] contient une suite de caractères qui ne correspond pas du tout avec celle qu'il y a dans la table user de mysql pour l'utilisateur "root".
Comment ca se fait que phpmyadmin se connecte alors ???

Autre chose : quand je suis loggé 'sous putty) en root sur le sme, la commande "mysql -u root -p" m'interdit l'acces (je l'ai dit plus haut), mais si je tappe seulement "mysql" je rentre !

Je me suis aperçu de ces problemes alors que j'essaye d'installer Egroupware, qui m'insulte quand je lui demande de créer sa base de données en sec onnectant avec root et le pass root...

Qqun peut il m'aider ?
merci !
Dernière édition par dway le 20 Juil 2005 14:30, édité 1 fois au total.
dway
Quartier Maître
Quartier Maître
 
Messages: 14
Inscrit le: 07 Juil 2005 02:56
Localisation: là bas, au fond.

Messagepar Argenlos » 18 Juil 2005 21:50

Bonjour,

Je pense que le mot de passe utiliser par phpmyadmin est crypté, d'ou la différence avec ce que tu as trouvé.

Regarde le fichier config.inc.phpde phpmyadmin...


Ceci aussi
Extrait:
/root/.my.cnf est un fichier de config, et dedans il y a ton mot de passe, c'est le truc barbare de 70 charactères de long
le user associé est bien entendu "root"

Bonne soirée.


Ps: Va sur SMERP ,dans le forum et choisie le projet de sauvegarde, dans les dernière pages, tu y trouvera un script qui récupère le mot de passe crypté pour pouvoir l'utiliser dans un script bash ou autre. (je ne peux pas te donner le lien, je n'ai pas accés au travail à tout l'internet :p et oui il est 22h00...y'en a qui bose lol)
Petit deviendra grand...
Avatar de l’utilisateur
Argenlos
Amiral
Amiral
 
Messages: 1120
Inscrit le: 31 Juil 2002 00:00
Localisation: Montagu vendée

Messagepar matvestenpan » 19 Juil 2005 11:07

Ce que m'avait répondu (et tout expliqué !) MasterSleepy il y a plus d'un an....

et surtout va voir sur http://www.familybrown.org/howtos/mysql ... howto.html tout y est



Salut,

Un truc à savoir sur la SME est qu'on ne change jamais le mot de passe root de mysql

C'est un grand principe de base comme expliquer http://www.familybrown.org/howtos/mysql-password-howto.html

Vaut mieux créer un nouvel utilisateur avec tous les privilèges.

A+
Ma tv est en panne
Avatar de l’utilisateur
matvestenpan
Major
Major
 
Messages: 76
Inscrit le: 09 Fév 2004 01:00
Localisation: bluxl

Messagepar Argenlos » 19 Juil 2005 14:10

Bonjour,

Par exemple pour récupérer le mot de passe contenu dans le fichier .my.cnf voici un moreau de code en perl (il ne te reste plus qu'à le faire un scrip bach ou en php)

Code: Tout sélectionner
   my $db_password;
   #recuperation du mot de passe
   open ( PASS, "/root/.my.cnf" ) or die "can't open password file: $! " ;
   while ( my $line = <PASS> ) {
        chomp $line ;
        if ( $line =~ m/password=(\S+)$/ ) {
   $db_password="$1";
        }
   }   
   close ( PASS ) ;

   # Declare and initialize variables
   my $host = 'localhost';
   my $db = 'backupcustom';
   my $db_user = 'root';
#   my $db_password = $line;

   # Connect to the requested server

   my $dbh = DBI->connect("dbi:mysql:$db:$host", "$db_user", "$db_password",
      {RaiseError => 1, PrintError => 1} )
      or err_trap("Cannot connect to the database");


Cordialement,
Petit deviendra grand...
Avatar de l’utilisateur
Argenlos
Amiral
Amiral
 
Messages: 1120
Inscrit le: 31 Juil 2002 00:00
Localisation: Montagu vendée

Messagepar dway » 19 Juil 2005 21:55

Salut, et merci pr ces reponses :)

Je comprend bien mieux le fonctionnement de ces histoires de pass et d'utilisateur a ajouter avec tous les droits.

En attendant des reponses a mon post, j'ai bourré un peu egroupware jusqu'à lui faire cracher une erreur de connection à la base, mais accompagnée d'une solution pr lui permettre d'y acceder...
Comme vous l'avez dit plus haut, je me suis connecté au serveur mysql, juste en tappant "mysql", puisqu'apparemment par defaut, je ne pouvais y entrer que sans preciser l'utilisateur ou le pass.
Une fois dans le serveur j'ai demandé :
> use mysql (pr qu'il utilise la DB mysql)
puis
> SELECT * FROM user

ce qui m'a donné la liste des utilisateurs de mysql.
je me suis étonné de voir qu'il n'y avait pas d'utilisateur sans mot de passe, donc je ne sais toujours pas comment j'ai put entrer dans le serveur avec la simple commande "mysql"...

toujours dans le server mysql, j'ai créee une base "egroupware", j'ai donné tous les droits à root (avec le mot de passe de root par defaut de l'install de SME), puis j'ai relancé la création des tables de egroupware dans mon navigateur et ca a marché :)

Mais en retournant voir la liste des utilisateurs de mysql, je me suis aperçu que le mot de pass root sur l'host "localhost" (voir mon premier post en haut) n'avait plus le meme mot de passe qu'au moment où je galerais (mon premier post), sachant que les 2 comptes root de la table user avait le meme mot de passe :shock:

Ma question est : comment ce mot de passe a-t-il changé alors que je n'ai pas tappé de commande pour le faire ??

Ce qui m'embete, c'est que j'aurais bien tenté de faire ça proprement comme expliqué dans vos posts, mais je ne vais pas m'amuser à reinstaller sme et reappliquer le script automatique de rodolph pr me replonger dedans...et donc la résolution de mon problème restera assez obscure...mais bon, ça marche...



Le deuxieme point est phpmyadmin.
Je disais dans mon premier post que le pass dans le config.inc.php de phpmyadmin etait différent de celui present pour les 2 utilisateur root autorisés à se connecter à mysql, mais phpmyadmin marchait très bien avant l'install de egroupware (le pass dans le config.inc.php etait une suite d'une vingtaine de caractères).
Donc après l'install de egroupware (ce que j'ai raconté plus haut), phpmyadmin ne se connectait plus à mysql......absurde non ?
J'ai donc changé dans le fichier config.inc.php la valeur du pass, et j'ai mis en clair le mot de passe de root (celui par defaut de l'install de SME). et il refonctionna....
j'imagine que les pass contenu dans :
- .my.conf
- config.inc.php (phpmyadmin)
- l'utilisateur root sur localhost de la table user de la base de donnée "mysql"
sont cryptés selon différentes manières, ce qui explique les différences, mais cela n'explique pas que phpmyadmin se connectait avant mais pas après install de egroupware et pourquoi une fois ecrit en clair dans le fichier de config, ça refonctionnait...

Voila, j'espere que mon post est pas trop indigeste, mais si qqun peut m'orienter vers le chemin du "pourquoi", je serai tout ouïe :)

En tout cas, merci pour votre aide :)
dway
Quartier Maître
Quartier Maître
 
Messages: 14
Inscrit le: 07 Juil 2005 02:56
Localisation: là bas, au fond.

Messagepar dway » 19 Juil 2005 22:22

Je m'auto repond :)

Après lecture de ce lien de matvestenpan, j'ai compris pourquoi je me connectais au serveur mysql sans mot de passe : c'est normal :)

Je peux donc expliqué mes soucis par le fait que lorsque je suis entré dans mysql, que j'ai donné tous les droits à l'utilisateur root avec le pass"xyxy" sur localhost pour la base de données egroupware, le serveur mysql a créee le pass de root qui etait vide au passage... donc forcement le pass a changé dans la table user...et donc normal qu'il faille changer le pass dans le config.inc.php pour mettre celui spécifié lors de la commande executés dans le serveur precedemment et qui est donc le mot de passe root par default ;)

Je vous remercie donc, j'ai appris plein de choses :)

PS :
j'ai voulu tripatouiller le php.ini, mais en tappant slocate php.ini, il y en a un a la racine de /etc/ et 2 repertoires dans /etc/e-smith/template/php.ini/ et /etc/e-smith/template-custom/php.ini/, le premier contenant plein de fichiers divisant la config de php.ini en sous parties (je décris mon impression hein :) ) et le deuxieme n'en contenant qu'un.

Je precise que j'ai PHP 4.3.10 depuis le script de rodolph.

Quel est cette histoire de template ??
j'ai modifié le register_global = "off" dans /etc/php.ini (il etait à on !!) et ça a été pris en compte.

Mais dans la foulée j'ai voulu mettre a jour egroupware (toujours lui :) ) et dans le setup, il me demande de mettre la valeur de mbstring.func_overload à 7 au lieu de 0 dans php.ini.
Moi je veux bien, j'execute, mais impossible de trouver cette variable dans tous les fichiers cités plus haut (meme le /etc/php.ini).
J'ai alors ecrit la valeur directement dans /etc/php.ini en rajoutant une ligne, j'ai rebooté le serveur et j'ai du partir :) donc je ne sais pas si ça a été pris en compte, je vous dirai demain.

Mais où egroupware trouve-t-il cette variable ???? décide-t-il de me dire "attention c'est pas bien, cette variable est à 0, elle devrait etre à 7" parceque justement elle n'existe pas ?
dway
Quartier Maître
Quartier Maître
 
Messages: 14
Inscrit le: 07 Juil 2005 02:56
Localisation: là bas, au fond.

Messagepar Argenlos » 20 Juil 2005 09:42

Bonjour,

Les templates sont des fichiers qui te permettent de créer générer des fichiers de configurations, je m'explique.
Les templates sont des schémas pour créer des fichier de configurations.
Voici un lien qui te l'expliquera: http://www.sme-fr.homelinux.net/templates.php

Pour faire des modifications dans ton fichier de configuration /etc/php.ini, par exemple, tu peux bien sûr les faire directement dans le fichier /etc/php.ini, mais lors du redémarrage de la machine, les templates sont ré-appliquer recréant ainsi le fichier /etc/php.ini sans tes modifications.
Pour que tes modifications soient prisent en compte, même aprés redémarrage du serveur , il faut modifier les templates.

C'est vrai que cela est un peu "lourd", mais c'est aussi la force de SME, en cas d'attaque destructice sur le serveur, il suffit de redémarrer, pour que cela remarche correctement.

Bonne journée.
Petit deviendra grand...
Avatar de l’utilisateur
Argenlos
Amiral
Amiral
 
Messages: 1120
Inscrit le: 31 Juil 2002 00:00
Localisation: Montagu vendée

Messagepar dway » 20 Juil 2005 12:30

Merci :)

Je vais me pencher sur le sujet !

C'est vrai que ce système a l'air robuste...
Donc tous les fichers contenus dans les repertoires template et template-custom (je parle de php.ini) sont en fait un "php.ini" divisé en sous parties ?
Je vais aller lire ton lien, ça devrait repondre a cette question j'imagine :)

Merci encore !
dway
Quartier Maître
Quartier Maître
 
Messages: 14
Inscrit le: 07 Juil 2005 02:56
Localisation: là bas, au fond.


Retour vers E-Smith / SME Server

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron