Changement de mot de passe Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

La gestion des mots de passe est un aspect crucial pour maintenir la sécurité des systèmes dans les environnements Linux. Les administrateurs système doivent comprendre comment créer et appliquer des politiques de mots de passe sécurisées pour protéger les comptes utilisateurs et les données sensibles contre l'accès non autorisé.

Dans ce labo (LabEx), vous apprendrez à utiliser la commande passwd pour changer les mots de passe des utilisateurs et à mettre en œuvre des politiques de mots de passe de base. Ces compétences fondamentales sont essentielles pour tous ceux qui travaillent avec des systèmes Linux, en particulier dans les rôles impliquant la gestion des comptes utilisateurs et la sécurité du système.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicFileOperationsGroup -.-> linux/chmod("Permission Modifying") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/UserandGroupManagementGroup -.-> linux/useradd("User Adding") linux/UserandGroupManagementGroup -.-> linux/passwd("Password Changing") linux/UserandGroupManagementGroup -.-> linux/id("User/Group ID Displaying") linux/VersionControlandTextEditorsGroup -.-> linux/nano("Simple Text Editing") subgraph Lab Skills linux/chmod -.-> lab-271347{{"Changement de mot de passe Linux"}} linux/cd -.-> lab-271347{{"Changement de mot de passe Linux"}} linux/grep -.-> lab-271347{{"Changement de mot de passe Linux"}} linux/useradd -.-> lab-271347{{"Changement de mot de passe Linux"}} linux/passwd -.-> lab-271347{{"Changement de mot de passe Linux"}} linux/id -.-> lab-271347{{"Changement de mot de passe Linux"}} linux/nano -.-> lab-271347{{"Changement de mot de passe Linux"}} end

Comprendre la commande passwd

Dans les systèmes Linux, la commande passwd est utilisée pour changer les mots de passe des utilisateurs. Cette commande permet aux utilisateurs de changer leur propre mot de passe, tandis que les administrateurs système peuvent changer les mots de passe de n'importe quel compte sur le système.

Créer un nouvel utilisateur

Commençons par créer un nouvel utilisateur que nous pourrons utiliser pour pratiquer la gestion des mots de passe. Ouvrez votre terminal et assurez-vous d'être dans le répertoire de travail par défaut :

cd ~/project

Maintenant, utilisez la commande useradd pour créer un nouvel utilisateur nommé cyberuser :

sudo useradd cyberuser

Cette commande crée un nouveau compte utilisateur mais ne définit pas de mot de passe pour celui-ci. Lorsque vous créez un utilisateur sans spécifier de mot de passe, le compte est généralement verrouillé par défaut.

Vous pouvez vérifier que l'utilisateur a été créé en utilisant la commande id :

id cyberuser

Vous devriez voir une sortie similaire à celle-ci :

uid=1001(cyberuser) gid=1001(cyberuser) groups=1001(cyberuser)

Définir un mot de passe pour le nouvel utilisateur

Maintenant que nous avons créé un nouvel utilisateur, définissons un mot de passe pour ce compte en utilisant la commande passwd :

sudo passwd cyberuser

Après avoir exécuté cette commande, vous serez invité à entrer un nouveau mot de passe deux fois pour confirmation :

New password:
Retype new password:
passwd: password updated successfully

Entrez un mot de passe de votre choix lorsque vous y êtes invité. Pour des raisons de sécurité, le mot de passe que vous tapez ne sera pas affiché à l'écran.

La commande passwd met à jour le mot de passe du compte utilisateur spécifié. Lorsqu'elle est exécutée avec les privilèges sudo, vous pouvez changer le mot de passe de n'importe quel utilisateur sur le système.

Afficher les informations sur le mot de passe

Pour afficher des informations sur le mot de passe d'un utilisateur, y compris la date de sa dernière modification, vous pouvez utiliser la commande chage -l suivie du nom d'utilisateur :

sudo chage -l cyberuser

Cette commande affiche des informations sur la politique de validité et d'expiration du mot de passe de l'utilisateur. La sortie ressemblera à ceci :

Last password change                                    : Jul 15, 2023
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

Ces informations sont utiles pour comprendre les politiques de mots de passe actuellement appliquées à un compte utilisateur.

Comprendre les fichiers de mots de passe dans Linux

Sous Linux, les informations sur les mots de passe sont stockées dans plusieurs fichiers système importants. Comprendre ces fichiers aide les administrateurs à gérer efficacement les comptes utilisateurs.

Explorer les fichiers liés aux mots de passe

Accédez à votre répertoire de projet :

cd ~/project

Examinons les fichiers clés qui stockent les informations sur les mots de passe et les comptes utilisateurs :

  1. Tout d'abord, regardons le fichier /etc/passwd qui contient les informations de base sur les comptes utilisateurs :
grep cyberuser /etc/passwd

Vous devriez voir une sortie similaire à :

cyberuser:x:1001:1001::/home/cyberuser:/bin/sh

Cette ligne contient plusieurs champs séparés par des deux-points :

  • Nom d'utilisateur : cyberuser
  • Espace réservé pour le mot de passe : x (le mot de passe réel est stocké dans /etc/shadow)
  • Identifiant utilisateur (UID) : 1001
  • Identifiant de groupe (GID) : 1001
  • Champ d'information utilisateur : (vide dans ce cas)
  • Répertoire personnel : /home/cyberuser
  • Shell par défaut : /bin/sh
  1. Maintenant, examinons le fichier de mots de passe shadow qui contient les informations de mot de passe chiffrées :
sudo grep cyberuser /etc/shadow

La sortie montrera le mot de passe chiffré et les informations connexes :

cyberuser:$6$xxxxxxxxxxxxxxxxxxx:19189:0:99999:7:::

Les champs de cette ligne incluent :

  • Nom d'utilisateur
  • Mot de passe chiffré
  • Nombre de jours depuis le 1er janvier 1970 où le mot de passe a été modifié pour la dernière fois
  • Nombre de jours avant que le mot de passe puisse être modifié
  • Nombre de jours après lesquels le mot de passe doit être modifié
  • Nombre de jours avant l'expiration du mot de passe pour avertir l'utilisateur
  • Nombre de jours après l'expiration du mot de passe jusqu'à la désactivation du compte
  • Nombre de jours depuis le 1er janvier 1970 où le compte a été désactivé
  • Un champ réservé

Ces informations sont cruciales pour comprendre comment la sécurité des mots de passe est mise en œuvre dans les systèmes Linux.

Mise en œuvre de politiques de mots de passe

Linux propose plusieurs outils pour appliquer des politiques de mots de passe, ce qui contribue à maintenir la sécurité du système en garantissant que les utilisateurs choisissent des mots de passe robustes. Dans cette étape, vous allez apprendre à mettre en œuvre des politiques de mots de passe de base.

Définition de l'expiration des mots de passe

La commande chage permet aux administrateurs de définir des politiques d'expiration des mots de passe. Accédez à votre répertoire de projet :

cd ~/project

Définissons l'âge maximal du mot de passe pour le compte cyberuser à 90 jours :

sudo chage -M 90 cyberuser

Cette commande définit le nombre maximal de jours pendant lesquels un mot de passe reste valide avant que l'utilisateur ne soit obligé de le changer.

Vous pouvez également définir un âge minimal pour le mot de passe, ce qui empêche les utilisateurs de changer leur mot de passe trop souvent :

sudo chage -m 7 cyberuser

Cette commande oblige l'utilisateur à attendre au moins 7 jours avant de changer à nouveau son mot de passe.

Vérifiez les modifications que vous avez apportées :

sudo chage -l cyberuser

Vous devriez voir les informations mises à jour sur la politique de mot de passe :

Last password change                                    : Jul 15, 2023
Password expires                                        : Oct 13, 2023
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 7
Maximum number of days between password change          : 90
Number of days of warning before password expires       : 7

Création d'un script de politique de mot de passe

Maintenant, créons un script qui mettra en œuvre des politiques de mots de passe plus avancées. Créez un nouveau fichier nommé cyberpolicy.sh :

nano ~/project/cyberpolicy.sh

Ajoutez le contenu suivant au fichier :

#!/bin/bash

## Enforce password complexity
echo "password requisite pam_pwquality.so retry=3 minlen=8 difok=3" | sudo tee -a /etc/pam.d/common-password

## Set password expiration policy for all new users
echo "PASS_MAX_DAYS   90" | sudo tee -a /etc/login.defs
echo "PASS_MIN_DAYS   7" | sudo tee -a /etc/login.defs
echo "PASS_WARN_AGE   7" | sudo tee -a /etc/login.defs

echo "Password policy has been updated successfully."

Enregistrez le fichier en appuyant sur Ctrl+O, puis Entrée, et quittez nano avec Ctrl+X.

Rendez le script exécutable :

chmod +x ~/project/cyberpolicy.sh

Ce script définit les politiques de mots de passe suivantes :

  • Complexité du mot de passe : Minimum 8 caractères, au moins 3 caractères différents du mot de passe précédent, avec 3 tentatives autorisées
  • Expiration du mot de passe : Âge maximal du mot de passe de 90 jours
  • Restriction de changement de mot de passe : Âge minimal du mot de passe de 7 jours
  • Avertissement de mot de passe : 7 jours avant l'expiration du mot de passe

Dans un environnement de production, vous exécuteriez ce script pour appliquer ces politiques. Cependant, pour ce laboratoire, nous allons simplement examiner le contenu pour comprendre comment les politiques de mots de passe peuvent être mises en œuvre.

Résumé

Dans ce laboratoire, vous avez appris des compétences essentielles pour la gestion des mots de passe dans les systèmes Linux. Vous avez pratiqué :

  1. La création d'un nouveau compte utilisateur à l'aide de la commande useradd
  2. La définition et la modification de mots de passe avec la commande passwd
  3. La visualisation des informations sur les mots de passe dans les fichiers système tels que /etc/passwd et /etc/shadow
  4. La définition de politiques d'expiration des mots de passe à l'aide de la commande chage
  5. La création d'un script pour appliquer des politiques de complexité et d'expiration des mots de passe

Ces compétences sont fondamentales pour les administrateurs de systèmes qui doivent maintenir des systèmes sécurisés en mettant en œuvre des pratiques appropriées de gestion des mots de passe. En comprenant comment appliquer des politiques de mots de passe robustes, vous pouvez améliorer considérablement la sécurité des systèmes Linux et les protéger contre l'accès non autorisé.

Au fur et à mesure de votre progression dans l'apprentissage, envisagez d'explorer des sujets plus avancés tels que la configuration des PAM (Pluggable Authentication Modules - Modules d'authentification modulaires), la mise en œuvre de l'authentification multi-facteur et l'automatisation de la gestion des comptes utilisateurs dans les environnements d'entreprise.