Le fichier de mot de passe Unix traditionnel, `/etc/passwd`, contient des informations sur le compte utilisateur. Bien que le format exact puisse varier légèrement entre les systèmes de type Unix, les champs standard sont :
1. Nom d'utilisateur (nom de connexion) : L'identifiant unique que les utilisateurs utilisent pour se connecter.
2. Mot de passe (x) : Historiquement, ce champ stockait le mot de passe crypté. Cependant, pour des raisons de sécurité, les systèmes modernes stockent généralement un « x » (ou parfois un astérisque ou un autre espace réservé) ici, indiquant que le hachage réel du mot de passe est stocké dans le fichier « /etc/shadow ».
3. ID utilisateur (UID) : Un identifiant numérique unique pour l'utilisateur. Ceci est utilisé en interne par le système d'exploitation pour suivre la propriété des fichiers, les autorisations et d'autres opérations spécifiques à l'utilisateur. L'UID 0 est réservé à l'utilisateur root.
4. ID de groupe (GID) : L'identifiant numérique du groupe principal de l'utilisateur. L'appartenance à un groupe définit les autorisations dont dispose l'utilisateur sur les fichiers et répertoires appartenant à ce groupe.
5. Informations utilisateur (champ GECOS) : Champ séparé par des virgules qui contient traditionnellement des informations descriptives sur l'utilisateur, telles que son nom complet, l'emplacement de son bureau et son numéro de téléphone. Il est de moins en moins utilisé pour son objectif initial et les composants peuvent être vides. Des outils comme `chfn` sont utilisés pour modifier ce champ.
6. Répertoire personnel : Le chemin absolu vers le répertoire personnel de l'utilisateur. C'est là que l'utilisateur est placé lorsqu'il se connecte, et c'est généralement là que ses fichiers et paramètres personnels sont stockés.
7. Shell de connexion : Le chemin absolu vers l’interpréteur de ligne de commande (shell) préféré de l’utilisateur. Il s'agit du programme qui est exécuté lorsque l'utilisateur se connecte. Les shells courants incluent `/bin/bash`, `/bin/sh`, `/bin/zsh` et `/bin/csh`. Si ce champ est vide, le système peut utiliser un shell par défaut (souvent `/bin/sh`). Une valeur de `/sbin/nologin` empêche l'utilisateur de se connecter directement.
Exemple :
```
john:x:1001:1001:John Doe,,,:/home/john:/bin/bash
```
* `john` :nom d'utilisateur
* `x` :Mot de passe (pointeur vers /etc/shadow)
* `1001` :ID utilisateur
* `1001` :ID du groupe
* `John Doe,,,` :champ GECOS (Nom complet, et 2 champs vides, et un autre champ vide)
* `/home/john` :répertoire personnel
* `/bin/bash` :shell de connexion
Considérations importantes :
* Les champs sont séparés par des deux-points (`:`).
* En raison de la présence d'informations sensibles telles que des mots de passe cryptés, l'accès à `/etc/passwd` est généralement limité à l'utilisateur root ou aux membres d'un groupe administratif spécifique. Bien que généralement lisibles dans le monde entier, les meilleures pratiques de sécurité imposent un examen attentif des autorisations.
* Les systèmes modernes utilisent généralement `/etc/shadow` pour stocker les hachages de mots de passe, offrant une couche de sécurité supplémentaire car `/etc/shadow` a des autorisations beaucoup plus restrictives que `/etc/passwd`.
* Network Information Service (NIS), Lightweight Directory Access Protocol (LDAP) et d'autres services d'annuaire peuvent également être utilisés pour l'authentification et l'autorisation des utilisateurs, remplaçant potentiellement le fichier local « /etc/passwd ».
* Le champ GECOS est souvent mal utilisé ou ignoré. Des considérations de sécurité conseillent d'éviter le stockage de données potentiellement sensibles dans ce domaine.
|