Linux contrôle l'accès aux ressources en se basant sur l'identité des utilisateurs. On distingue plusieurs types de comptes :
- Compte superutilisateur : possède tous les droits
- Compte utilisateur ordinaire : droits restreints
- Compte de programme : pour les services système, non destiné à une connexion humaine
Chaque utilisateur appartient à un groupe principal (obligatoire, un seul) et peut appartenir à plusieurs groupes supplémentaires (facultatifs).
L'identifiant numérique est l'UID (User IDentify) pour l'utilisateur et le GID (Group IDentify) pour le groupe. Le système distingue les utilisateurs par leur UID : un UID de 0 correspond au superutilisateur (root).
Sous les distributions récentes (type CentOS 7), les plages UID sont les suivantes :
- 0 : superutilisateur
- 1000–60000 : utilisateurs ordinaires
- 1–999 : comptes de programme
Fichier des comptes : /etc/passwd
Ce fichier contient les informations de base de chaque utilisateur. Chaque ligne correspond à un enregistrement :
root:x:0:0:root:/root:/bin/bash
Les champs sont :
- Nom d'utilisateur
- Placeholder du mot de passe (x)
- UID
- GID
- Commentaire
- Répertoire personnel
- Shell de connexion
Pour plus de détails : man 5 passwd.
Fichier des mots de passe : /etc/shadow
Stocke les mots de passe chiffrés et les politiques de validité. Exemple :
dupont:$6$AbcDef123$...:19818:0:99999:7:::
Signification :
- Nom d'utilisateur
- Mot de passe chiffré (si commençant par
!ou*, compte verrouillé ; vide → connexion sans mot de passe) - Date du dernier changement (en jours depuis 1970-01-01)
- Âge minimal avant changement (0 = aucun délai)
- Âge maximal (99999 ≈ 273 ans)
- Période d'avertissement avant expiration (7 jours)
- Période de grâce après expiration (vide = aucune)
- Date d'expiration du compte (vide = jamais)
- Champ réservé
Voir man 5 shadow.
Commandes essentielles
useradd
Crée un nouvel utilisateur. Par défaut :
- Crée un groupe principal du même nom
- Crée un répertoire personnel dans /home
Options courantes :
-u UID: spécifier l'UID-s SHELL: shell de connexion (ex. /sbin/nologin)-M: ne pas créer de répertoire personnel-d DOSSIER: définir un répertoire personnel différent-e DATE: date d'expiration du compte (AAAA-MM-JJ)-g GROUPE: groupe principal-G GROUPES: groupes supplémentaires (séparés par des virgules)-c COMMENTAIRE: ajouter un commentaire-p MOTDEPASSE_CHIFFRE: mot de passe (doit être déjà chiffré)
Exemple :
useradd -u 1500 -s /sbin/nologin -M martin
passwd
Modifie le mot de passe. passwd nom_utilisateur ; sans argument, modifie celui de l'utilisateur courant.
-d: supprime le mot de passe-l: verrouille le compte-u: déverrouille (forcer avec-fsi pas de mot de passe)-S: affiche l'état du mot de passe--stdin: permet de passer le mot de passe via l'entrée standard (ex.echo "secret" | passwd --stdin alice)
usermod
Modifie un compte existant. Options similaires à useradd :
-l NOUVEAU_NOM ANCIEN_NOM: renomme l'utilisateur-u UID: change l'UID-s SHELL: change le shell-L: verrouille le compte-U: déverrouille-e DATE: modifie la date d'expiration
Exemple :
usermod -u 1600 -s /bin/bash alice
userdel
Supprime un utilisateur. userdel -r nom supprime également son répertoire personnel.
Gestion des permissions
Les permissions sont représentées par des lettres :
- r (4) : lecture – pour un fichier, voir le contenu ; pour un dossier, lister son contenu
- w (2) : écriture – pour un fichier, modifier le contenu ; pour un dossier, créer/supprimer/renommer des éléments
- x (1) : exécution – pour un fichier, l'exécuter ; pour un dossier, droit minimal pour accéder aux fichiers
Les permissions sont groupées par utilisateur (propriétaire), groupe propriétaire, autres.
Modificasion avec chmod
Syntaxe : chmod [options] [classe][opérateur][permissions] fichier
Classes : u (utilisateur), g (groupe), o (autres), a (tous). Opérateurs : + (ajouter), - (retirer), = (définir exactement).
Exemples :
chmod u+x script.sh # ajoute l'exécution au propriétaire
chmod g=rw,o=r document # propriétaire identique, groupe lit+écrit, autres lecture seule
chmod a-x *.sh # retire l'exécution pour tous
Représentation numérique : addition des valeurs binaires (r=4, w=2, x=1). Exemple : 755 correspond à rwxr-xr-x.
Option -R : applique récursivement à tout un dossier.