Il existe plusieurs commandes Linux qui peuvent être utilisées pour définir une date d'expiration pour un mot de passe, en fonction de la distribution et des outils disponibles. Voici une liste des plus courants :
1. `chage` (Modifier les informations d'expiration du mot de passe utilisateur)
* Il s'agit de l'outil le plus courant et recommandé pour gérer les dates d'expiration des mots de passe. Il vous permet de définir divers paramètres de vieillissement des mots de passe, notamment :
* Date d'expiration du mot de passe : La date à laquelle le mot de passe doit être modifié.
* Âge minimum du mot de passe : Nombre de jours pendant lesquels un utilisateur doit conserver un mot de passe avant de le modifier.
* Âge maximum du mot de passe : Le nombre de jours pendant lesquels un mot de passe est valide.
* Jours d'avertissement : Le nombre de jours avant l'expiration pour avertir l'utilisateur.
* Jours inactifs : Le nombre de jours après l'expiration d'un mot de passe avant que le compte soit désactivé.
* Syntaxe :
```bash
modifier le nom d'utilisateur [options]
```
* Exemples :
* Définir la date d'expiration sur une date spécifique (AAAA-MM-JJ) :
```bash
sudo chage --expiredate 2024-12-31 nom d'utilisateur
```
* Définissez l'âge maximum du mot de passe sur 90 jours :
```bash
sudo chage --maxdays 90 nom d'utilisateur
```
* Définissez l'âge minimum du mot de passe sur 7 jours :
```bash
sudo chage --mindays 7 nom d'utilisateur
```
* Définir la période d'avertissement sur 14 jours :
```bash
sudo chage --warndays 14 nom d'utilisateur
```
* Désactiver le vieillissement du mot de passe (en fait, pas d'expiration) :
```bash
sudo chage --maxdays -1 nom d'utilisateur
```
* Afficher les informations sur l'ancienneté du mot de passe d'un utilisateur :
```bash
chage -l nom d'utilisateur
```
* Remarques importantes :
* `chage` nécessite généralement les privilèges root (utilisez `sudo`).
* La commande `chage` modifie le fichier de mot de passe shadow (`/etc/shadow`), alors soyez prudent.
* L'option `--expiredate` définit la date d'expiration *absolue*. L'option `--maxdays` définit l'âge maximum *relatif* du mot de passe (à partir du dernier changement de mot de passe). L'utilisation de « --expiredate » est généralement préférable pour définir une date d'expiration spécifique.
2. `passwd` (Changer le mot de passe de l'utilisateur)
* Bien qu'elle soit principalement utilisée pour modifier les mots de passe, la commande `passwd` peut *implicitement* affecter l'expiration du mot de passe. Plus précisément, il met à jour la date du « dernier changement de mot de passe », qui est utilisée conjointement avec l'âge maximum du mot de passe défini par « chage ».
* Syntaxe :
```bash
nom d'utilisateur sudo passwd
```
* Quel est le rapport avec l'expiration :
* Lorsqu'un utilisateur modifie son mot de passe à l'aide de `passwd`, la date de "dernière modification" dans `/etc/shadow` est mise à jour. Si un âge maximum du mot de passe est défini (en utilisant `chage --maxdays`), le système calcule la date d'expiration en fonction de cette date de « dernière modification » et de l'âge maximum.
* Limites :
* `passwd` seul *ne peut pas* définir directement une date d'expiration spécifique. Il met uniquement à jour la date de changement du mot de passe.
* Vous devez toujours utiliser `chage` pour configurer la politique de vieillissement des mots de passe (jours min/max, jours d'avertissement).
3. `usermod` (Modifier le compte utilisateur)
* `usermod` est une commande puissante pour modifier les propriétés du compte utilisateur. Il peut être utilisé pour définir la date d'expiration du compte. C'est *différent* de l'expiration du mot de passe. L'expiration du compte signifie que le compte utilisateur lui-même deviendra inutilisable après cette date.
* Syntaxe :
```bash
sudo usermod -e AAAA-MM-JJ nom d'utilisateur
```
* Exemple :
* Définissez la date d'expiration du compte sur le 31/12/2024 :
```bash
sudo usermod -e 2024-12-31 nom d'utilisateur
```
* Considérations importantes :
* Ce n'est *pas* la même chose que l'expiration du mot de passe. Un compte peut expirer même si le mot de passe n'a pas expiré.
* Si vous définissez à la fois une expiration de mot de passe (en utilisant `chage`) et une expiration de compte (en utilisant `usermod -e`), le compte expirera à la date qui arrive *la plus tôt*.
* Pour supprimer la date d'expiration du compte :
```bash
sudo usermod -e "" username # Une chaîne vide supprime l'expiration
```
Quelle commande utiliser ?
* Pour l'expiration du mot de passe (le mot de passe lui-même devient invalide après un certain temps) : Utilisez `chage`. Il s’agit de l’approche la plus courante et la plus recommandée pour gérer le vieillissement des mots de passe.
* En cas d'expiration du compte (le compte utilisateur lui-même devient inutilisable après un certain temps) : Utilisez `usermod -e`. Ceci est utile pour les comptes temporaires ou lorsque vous souhaitez désactiver un compte à une date précise.
* `mot de passe` est utilisé pour *changer* le mot de passe, qui sera ensuite pris en compte dans la politique d'expiration du mot de passe existante (définie par `chage`).
Exemple de scénario :définition d'une expiration de mot de passe de 90 jours pour un utilisateur nommé "john" :
1. Définissez l'âge maximum du mot de passe sur 90 jours :
```bash
sudo chage --maxdays 90 john
```
2. (Facultatif) Définissez une période d'avertissement de 14 jours :
```bash
sudo chage --warndays 14 john
```
3. (Facultatif) Modifiez le mot de passe (pour réinitialiser la date de « dernière modification ») :
```bash
sudo mot de passe john
```
À partir du moment où « john » modifie son mot de passe, il disposera de 90 jours avant d'être invité à le modifier à nouveau. 14 jours avant ce délai de 90 jours, ils recevront un message d'avertissement.
Considérations de sécurité :
* Politiques relatives au vieillissement des mots de passe : Mettez en œuvre des politiques strictes en matière de vieillissement des mots de passe (âge minimum/maximum approprié, périodes d’avertissement) pour renforcer la sécurité.
* Complexité du mot de passe : Appliquez des exigences strictes en matière de complexité des mots de passe (longueur minimale, casse mixte, caractères spéciaux) pour rendre les mots de passe plus difficiles à déchiffrer.
* Surveillance régulière : Examinez régulièrement les comptes d’utilisateurs et les politiques de vieillissement des mots de passe pour vous assurer qu’ils sont appropriés et efficaces.
* Méthodes d'authentification : Pensez à utiliser l'authentification multifacteur (MFA) pour les comptes critiques afin d'ajouter une couche de sécurité supplémentaire.
Choisissez la commande qui correspond le mieux à vos besoins spécifiques et soyez toujours prudent lorsque vous modifiez les paramètres du compte utilisateur. N'oubliez pas de consulter la documentation de votre distribution Linux pour obtenir les informations les plus précises et les plus à jour.
|