Gérer les comptes utilisateurs sous Linux
adduser,passwd, groupes et privilèges
Petite vérification
Avant de commencer, vérifiez si vous savez encore répondre à ces 3 questions très simples, sur la séance précédente consacrée aux permissions Linux :
- que signifie le chiffre
6dans la notation octale (chmod 644, par exemple) ? - pourquoi un fichier contenant un mot de passe devrait-il presque toujours avoir les permissions
600? - pourquoi
chown root:root fichier.txt, lancé par un utilisateur normal, échoue-t-il sanssudo?
📌 Réponse attendue
TP pour réfléchir et résoudre des problèmes
Votre défi pour aujourd'hui consiste à créer un compte pour un nouvel arrivant, et à lui donner accès à un dossier partagé, sans rien donner de plus
Ce TP nécessite les droits sudo sur votre serveur Linux, comme pour toute création de compte ou de
groupe. Si vous ne les avez pas, demandez-les avant de commencer.
Le manuel Cybersécurité BTS SIO 1re année (Delagrave) consacre tout son chapitre 5 (« Sécuriser l'accès aux ressources et vérifier l'efficacité », p. 57) à un cas très proche de celui d'aujourd'hui (comptes, groupes, privilèges, sous Windows/Active Directory plutôt que sous Linux), avec un piège classique à connaître : un dossier partagé qui reste accessible à un groupe par défaut bien trop large (vu à l'étape 5 ci-dessous).
Étape 1 — Créer un compte utilisateur
Une nouvelle personne rejoint votre équipe. Créez-lui un compte :
sudo adduser camille
adduser crée aussi, automatiquement, son dossier personnel. Vérifiez que le compte existe bien :
id camille
cat /etc/passwd | grep camille
Que contient la ligne retournée par cat /etc/passwd | grep camille ?
📌 Réponse attendue
Méthode alternative : useradd
adduser est une commande conviviale, propre aux distributions de la famille Debian/Ubuntu, qui
s'appuie en réalité sur une commande plus bas niveau et présente sur toutes les distributions
Linux : useradd. Elle nécessite d'indiquer explicitement l'option de création du dossier
personnel :
sudo useradd -m camille
Les 2 commandes créent un compte équivalent. adduser est utilisée dans ce cours car plus
simple à retenir, et parce qu'elle pose aussi, par défaut, quelques questions interactives (mot de
passe, nom complet...).
Étape 2 — Définir un mot de passe initial
Un compte fraîchement créé n'a pas de mot de passe utilisable. Définissez-en un :
sudo passwd camille
Pourquoi est-il important que ce mot de passe initial soit changé par Camille elle-même dès sa première connexion, plutôt que d'être conservé tel quel ?
📌 Réponse attendue
Étape 3 — Créer un groupe partagé
Camille doit avoir accès aux mêmes fichiers que le reste de l'équipe technique, sans pour autant avoir tous les droits d'un administrateur. Créez un groupe dédié, et ajoutez-y Camille :
sudo groupadd equipe-tech
sudo adduser camille equipe-tech
groups camille
Vérifiez, avec le résultat de groups camille, que Camille appartient bien à la fois à son groupe
principal et au nouveau groupe equipe-tech. Pourquoi est-il important qu'elle conserve son groupe
principal, plutôt que d'en changer ?
📌 Réponse attendue
Méthode alternative : usermod
Sur une distribution qui ne propose pas adduser (ou en dehors de Debian/Ubuntu), la commande
équivalente est usermod, avec l'option -aG (append, pour ajouter sans rien retirer) :
sudo usermod -aG equipe-tech camille
Attention : oublier le -a (et n'écrire que -G) remplace la totalité des groupes secondaires
de l'utilisateur par celui indiqué, retirant Camille de tout groupe auquel elle appartenait déjà.
C'est une erreur fréquente et dangereuse : adduser nom groupe évite complètement ce piège,
puisqu'elle n'a qu'un seul comportement possible, celui d'ajouter.
Étape 4 — Vérifier l'accès au dossier partagé du groupe
L'équipe technique partage un dossier /srv/equipe-tech. Donnez-y accès au groupe, sans donner
accès à qui que ce soit d'autre :
sudo mkdir -p /srv/equipe-tech
sudo chown root:equipe-tech /srv/equipe-tech
sudo chmod 770 /srv/equipe-tech
ls -ld /srv/equipe-tech
Expliquez ce que permet, et interdit, la permission 770 appliquée à ce dossier.
Intérêt de l'argument d dans la commande ls
Par défaut, ls -l appliqué à un dossier affiche la liste de son contenu (les fichiers et
sous-dossiers qu'il contient), pas une ligne décrivant le dossier lui-même. C'est ce qui explique
pourquoi ls -ld /srv/equipe-tech utilise l'option d (directory) : elle demande à ls
d'afficher les informations du dossier /srv/equipe-tech lui-même (ses permissions, son
propriétaire, son groupe), et non celles des fichiers qu'il contient.
Sans le d, ls -l /srv/equipe-tech (juste après sa création, encore vide) n'afficherait qu'une
ligne total 0, sans aucune information utile sur le dossier lui-même.
On pourrait objecter qu'ls -la /srv/equipe-tech affiche lui aussi une ligne . correspondant au
dossier lui-même, au milieu de son contenu. Mais ls -ld reste préférable, pour 2 raisons :
- Permission :
ls -ladoit pouvoir lire le contenu du dossier (droitr) pour en lister les entrées, y compris..ls -ldn'a besoin que de pouvoir atteindre le dossier (droitxsur les dossiers parents) : il interroge seulement les métadonnées du dossier lui-même, sans l'ouvrir. Sur un dossier sans droit de lecture pour vous (comme/srv/equipe-techsi vous n'appartenez pas au groupeequipe-tech),ls -laéchoue avecPermission denied, alors quels -ldfonctionne toujours. - Lisibilité :
ls -lddonne une seule ligne, utile pour relire rapidement un résultat ou l'exploiter dans un script, plutôt que de la chercher au milieu de tout le contenu du dossier.
Étape 5 — Repérer un accès trop large (pour aller plus loin)
Un collègue a créé, un peu vite, un second dossier partagé pour l'équipe technique. Voici le
résultat de ls -ld sur ce dossier :
drwxrwxrwx 2 root equipe-tech 4096 oct. 10 09:00 /srv/equipe-tech-bis
-
Qu'est-ce qui ne va pas avec ces permissions, même si le propriétaire et le groupe sont corrects ?
-
Corrigez-les.
📌 Réponse attendue
Restitution orale
Un étudiant (ou un binôme) vient présenter au tableau sa démarche de création de compte et d'accès au dossier partagé.
- Durée : 5 minutes de présentation + 2 à 3 minutes de questions.
- Qui passe : un(e) étudiant(e) (ou un binôme) désigné(e) par l'enseignant.
- Support : le travail réalisé pendant le TP, aucune préparation supplémentaire n'est nécessaire.
- Ce qui est attendu :
- présenter les commandes utilisées pour créer le compte et le groupe (étapes 1 et 3) ;
- expliquer la permission
770appliquée au dossier partagé (étape 4) ; - répondre aux questions de la classe.
Cet exercice entraîne à l'oral technique court exigé par plusieurs épreuves du BTS (notamment E5 et E6) : clarté, structure, capacité à répondre à l'improviste.
📌 Une solution
Notions théoriques
Un compte, 3 fichiers système
Chaque compte utilisateur Linux est décrit dans plusieurs fichiers système :
| Fichier | Contenu |
|---|---|
/etc/passwd | La liste des comptes (nom, UID, GID, dossier personnel, shell) |
/etc/shadow | Les mots de passe, sous forme chiffrée, lisibles uniquement par root |
/etc/group | La liste des groupes et de leurs membres |
Le x que vous avez observé à l'étape 1 dans /etc/passwd, à la place du mot de passe, signale
justement que le vrai mot de passe (chiffré) se trouve dans /etc/shadow, bien plus protégé.
adduser, passwd : les commandes de base pour gérer un compte
| Commande | Rôle |
|---|---|
adduser nom | Crée le compte et son dossier personnel |
passwd nom | Définit ou change le mot de passe du compte |
adduser nom groupe | Ajoute le compte existant à un groupe existant, sans toucher aux autres |
Ces commandes nécessitent presque toujours sudo : créer un compte, fixer un mot de passe ou
modifier l'appartenance à un groupe sont des actions d'administration, au même titre que chown
vu lors de la s éance précédente.
adduser s'appuie, en coulisses, sur des commandes plus bas niveau communes à toutes les
distributions Linux : useradd (créer un compte) et usermod -aG (ajouter à un groupe), détaillées
dans les encadrés « Méthode alternative » du TP.
Groupe principal, groupes secondaires
Chaque utilisateur a un groupe principal (créé automatiquement avec son compte, souvent du
même nom que lui) et peut appartenir à zéro, un ou plusieurs groupes secondaires, comme
equipe-tech à l'étape 3 du TP.
Donner un droit à un groupe plutôt qu'à chaque utilisateur un par un est une bonne pratique : le jour où Camille quitte l'équipe, il suffit de la retirer du groupe, sans toucher aux permissions du dossier lui-même.
Groupes et permissions : le lien avec la séance précédente
La permission 770 appliquée à l'étape 4 réutilise directement la notation octale vue lors de la
séance précédente : 7 (lecture, écriture, exécution) pour le propriétaire et pour le groupe,
0 (aucun droit) pour les autres. C'est en combinant un groupe bien choisi et des
permissions précises qu'on applique concrètement le principe du moindre privilège : donner
exactement l'accès nécessaire, ni plus, ni moins.