12/12/2024

Base de données

Utilisation d’un fichier sécurisé pour l’authentification MySQL

I. Présentation

Lors de la mise en place de scripts utilisant MySQL ou de l'utilisation des commandes MySQL en CLI, il peut être gênant d'avoir à saisir le mot de passe directement dans le script ou la commande qui est exécuté . Nous allons donc chercher à le stocker dans un fichier et à aller le lire par une option supplémentaire dans les commandes. Cela peut nous être pratique dans un soucis de sécurité d'une part, mais également dans un soucis de facilité d'utilisation.

II. Fonctionnement

On passe pour cela par un fichier déjà existant qui est "/etc/mysql/debian.cnf". Ce fichier est déjà utilisé par le système. C'est votre machine qui, par le compte "debian-sys-maint" va faire des mises à jours sur la base de données ou des checks système. Le mot de passe associé à cet utilisateur est automatiquement créé à l'installation de MySQL. Il ne faut donc pas y toucher. Nous allons simplement nous contenter de copier ce fichier pour récupérer sa structure.

cp /etc/mysql/debian.cnf /etc/mysql/user.sql

Puis nous le modifions pour y mettre nos identifiants dans les champs "user" et "password" la partie "[client]" :

SaveSCriptBash01

On peut aussi, dans le cas d'une connexion distante, mettre l'IP ou le nom FQDN de l'hôte distant MySQL. Par sécurité, on réduit les droits sur ce fichier. On ne laisse que le propriétaire avoir les droits de lecture dessus, on lui enlève même les droits d'écriture :

chmod 400 /etc/mysql/user.cnf

III. Utilisation

A présent, au lieu de nous connecter à MySQL avec cette commande :

mysql -u backup --password=< mot de passe >

On passera par notre fichier, le mot de passe ne sera donc plus à saisir ni en direct dans ligne de commande, ni dans l'espace de saisie qui suit cette commande :

mysql --defaults-extra-file=/etc/mysql/user.cnf

On doit bien faire attention à ce que l'option "--defaults-extra-file" soit la première de toutes les options. On utilisera exactement de la même façon l'option avec la commande "mysqldump" ou toute autre commande utilisant l'authentification mysql.

author avatar
Mickael Dorigny Co-founder
Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

1 commentaire sur “Utilisation d’un fichier sécurisé pour l’authentification MySQL

  • Bonjour,
    N’y a t’il pas une erreur dans la première commande ? On copie un .cnf (contenant des paramètres MySQL) en .sql (ce qui n’a pas tellement de sens). Plus tard, on retrouve le même chemin/nom de fichier avec l’extension .cnf.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.