Comptes et droits Linux
| Site: | Le labo numérique de M. MIGNOTTE – Cours, projets et ressources pour les élèves de seconde SNT et STI2D |
| Course: | Réseaux informatique (niveau 2) |
| Book: | Comptes et droits Linux |
| Printed by: | Guest user |
| Date: | Wednesday, 18 March 2026, 4:50 AM |
Introduction
Nous allons étudier la gestion des comptes sous Linux (création, modification et suppression). Nous reverrons ensuite les bases de la gestion des droits des fichiers.
Remarque : sans précisions, vous devez vous connectez en tant que root.
Fichiers des comptes Linux
Fichier /etc/passwd
Nous avons vu lors de l'installation de Linux, qu'un compte utilisateur simple (sans pouvoirs) a été créé. Nous l'avons appelé user (mot de passe user). Ce compte nous a permis de nous connecter puis d'activer le compte root (avec pouvoirs) en utilisant la commande sudo.
La liste des utilisateurs est stockée dans un fichier appelé /etc/passwd (rappel : on donne toujours le chemin absolu lorsque l'on cite un fichier dans le monde Linux).
À faire : afficher le contenu de ce fichier via la commande cat vue au TP2.
Seules la première et la dernière ligne de ce fichier nous intéressent pour l'instant.
- Première ligne :
root:x:0:0:root:/bin/bash
- Dernière ligne :
user:x:1000:1000:user,,,:/home/user:/bin/bash
Explications (les différents champs sont séparés par le caractère ':')
- Username : Le nom de compte (celui qui doit être saisi pour se connecter).
- Password : Un x indique qu'un mot de passe chiffré existe dans le fichier /etc/shadow.
- User ID (UID) : Chaque compte possède un numéro unique (0 est obligatoirement celui du compte root). Les numéros entre 1 et 999 sont réservés pour des comptes administratifs qui ne nous concernent pas ici. Les numéros à partir de 1000 concernent les comptes utilisateurs (ceux que nous allons créer).
- Group ID (GID) : Numéro du groupe primaire auquel appartient le compte (chaque compte appartient par défaut à un groupe qui possède le même nom que le compte et ce groupe possède également un ID). Les autres membres d'un groupe sont stockés dans le fichier /etc/group.
- User ID Info : Informations complémentaires sur un compte (nom complet - souvenez-vous, il était demandé durant l'installation de Linux - numéros de téléphones, etc.)
- Home directory : Chemin absolu vers le répertoire de l'utilisateur (celui dans lequel on se retrouve après connexion symbolisé par ~ dans le prompt).
- Shell : Chemin absolu vers le shell de l'utilisateur, c'est à dire l'interpréteur des commandes que l'on saisit (ici /bin/bash, mais sachez qu'il en existe d'autres, le shell bash étant le plus utilisé).
Les mots de passe sont donc stockés dans un fichier à part appelé /etc/shadow
Fichier /etc/shadow
À faire : afficher le contenu de ce fichier toujours via la commande cat.
Encore une fois, seules la première et la dernière ligne de ce fichier nous intéressent.
- Première ligne :
root:$6$cBNnsDaJ$/ug[...]9f0:17215:0:99999:7:::
- Dernière ligne :
user:$6$42doiZb3$q6x[...]fV/:17215:0:99999:7:::
Explications (les différents champs sont séparés par le caractère ':')
- Username : Le nom du compte.
- Password : * indique un compte désactivé, sinon on trouve l'empreinte du mot de passe.
- Lastchanged : Nombre de jours entre le 1/1/1970 et le dernier changement du mot de passe.
- Minimum : Nombre de jours avant que le mot de passe puisse être changé (0 par défaut).
- Maximum : Nombre de jours au delà duquel le mot de passe doit être changé (99999 par défaut).
- Warm : Nombre de jours restant avant que l'utilisateur soit averti de l'expiration de son mot de passe.
- 8 et 9 : usage rare, on ne s'en préoccupe pas ici.
Remarques sur le chiffrement des mots de passe.
Le champ comprend plusieurs parties séparées par le caractère '$' :
- $6 indique une empreinte de type SHA-512 (cas le plus courant).
- $cBNnsDaJ est le sel (ou 'salt', chaîne utilisée pour rendre plus difficile la découverte d'un mot de passe).
- $/ug...9f0 est l'empreinte du mot de passe + le sel.
Fichier /etc/group
Ce fichier contient la liste des groupes et de ses membres.
Contenu de la première ligne :
root:x:0:
Sa structure est la suivante :
- GroupName : Nom du groupe.
- Password : x indique que le mot de passe est stocké dans le fichier /etc/gshadow.
- GroupID (GID) : ID du group.
- GroupList : Liste des noms des utilisateurs autre que l'utilisateur portant le même nom que le groupe appartenant à ce groupe (ici aucun).
Fichier /etc/gshadow
Ce fichier contient la liste des mots de passe des groupes.
Contenu de la première ligne :
root:*::
Contenu de la ligne concernant le groupe user
user:!::
Sa structure est la suivante :
- GroupName : Nom du groupe.
- Password : * ou ! signifient qu'il n'y a pas de mot de passe. C'est à dire que personne en dehors des membre du groupe ne peuvent accéder aux ressources d'un groupe auquel il n'appartient pas (sinon il peut utiliser le mot de passe).
- AdminList : Liste des administrateurs du groupe (séparés par une virgule).
- MembersList : Liste des utilisateurs appartenant à ce groupe (séparés par une virgule).
Exercices :
- Quelle commande permet d'afficher uniquement la première ligne du fichier /etc/passwd (commande déjà vue) ?
- Quelle commande permet d'afficher uniquement la dernière ligne du fichier /etc/shadow (commande déjà vue) ?
- Quelle commande permet d'afficher uniquement les lignes contenant un mot donné dans un fichier (commande non vue, faire une recherche) ?
Donner la commande à saisir pour afficher les lignes du fichier /etc/passwd contenant le mot bash.
Donner la commande à saisir pour afficher les lignes du fichier /etc/group contenant le mot user. - L'objectif de cet exercice est de générer l'empreinte d'un mot de passe comme il sera stocké dans le fichier /etc/shadow.
Pour cela, il faut installer le paquetage whois.
a) Quelle commande pour installer ce paquetage ?
La commande à utiliser s'appelle mkpasswd. Sa syntaxe est la suivante :
mkpasswd -m SHA-512 unMotDePasse valeurDuSel (si l'empreinte est de type 6 - voir plus haut -)
b) Quelle commande saisir pour vérifier les mots de passe de root et de user ? Vérifier que vous obtenez le même résultat que celui stocké dans le fichier /etc/shadow.
Selon vous, pourquoi utilise-t-on le sel ? (indication : pensez à deux utilisateurs qui ont le même mot de passe).
Manipulation des comptes Linux
Remarque préliminaire : il faut être connecté en tant que root pour effectuer les exercices.
adduser
Cette commande permet de créer un nouveau compte. Il faut saisir le nom du compte après la commande.
Exemple :
adduser toto
Remarque : le mot de passe n'est pas obligatoire, mais est demandé trois fois de suite si on le saisit pas. En cas d'absence de mot de passe, le compte est désactivé (voir exercice). Les autres paramètres sont optionnels.
Exercice d'application
Créer le compte toto avec mot de passe 'toto'. Renseigner les autres champs du compte (full name, room number, work phone, home phone, other).
- Quelle commande pour afficher la ligne concernant toto dans /etc/passwd ?
- Quel ID possède toto ?
- Quel est l'ID de groupe de toto ?
- Quel est le répertoire de connexion de toto ?
- Quel shell est affecté à toto ?
Créer le compte titi sans mot de passe.
- Quelle commande pour afficher les deux dernières lignes du fichier /etc/passwd ?
- Quelle différence entre toto et titi ?
- Essayer de vous connecter en tant que titi (sans mot de passe) sur une autre console. Que se passe-t-il ?
Affecter le mot de passe 'titi' à titi (voir TP2).
deluser
Cette commande permet de supprimer un compte existant. Il faut saisir le nom de compte après la commande.
Exemple :
deluser toto
Exercice d'application
Supprimer le compte toto.
- Quelle unique commande saisir pour vérifier l'absence de toto dans les fichiers /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow ?
Afficher le contenu détaillé (ls -l) du répertoire /home
Le répertoire de toto est toujours présent.
- Quelle est sa particularité ?
- Quelle commande permet de supprimer le compte titi avec l'option qui permet de supprimer son répertoire personnel.
Vérifier l'absence du répertoire de connexion de titi.
- Quelle commande saisir pour supprimer le répertoire de connexion de toto ?
Exercice complémentaire
Créer les comptes user1 et user2.
- Quels id pour user1 et user2 ?
Vérifier la présence de user1 et user2 dans le répertoire /home. Vérifier également le propriétaire et le groupe propriétaire de ces dossiers.
- Supprimer user2 sans supprimer son répertoire de connexion.
- Faire de même avec user1.
- Recréer user2 puis user1 (attention l'ordre est important). Observez le propriétaire et le groupe propriétaire des répertoires user1 et user2. Étrange non ?
chown : changer le propriétaire d'un fichier ou d'un répertoire
Pour rétablir les droits initiaux des répertoires /home/user1 et /home/user2, il faut utiliser la commande chown dont la syntaxe est la suivante :
chown nouveauPropriétaire nomDuFichier
Exercice :
Quelles commandes saisir pour que user1 et user2 redeviennent les propriétaires de leurs dossiers dans /home ?
chgrp : changer le groupe propriétaire d'un fichier ou d'un répertoire
Les dossiers ont retrouvés leur propriétaire initial mais le groupe propriétaire n'a pas été modifié. Il faut utiliser chgrp dont la syntaxe est la suivante :
chgrp nouveauGroupePropriétaire nomDuFichier
Exercice :
Quelles commandes saisir pour changer les groupes propriétaires des dossier /home/user1 et /home/user2 ?
Remarque : il est possible de changer le propriétaire et le groupe propriétaire en même temps avec la commande chown.
Après avoir consulté l'aide de chown, changer le propriétaire et le groupe propriétaire de home/user1 afin qu'il appartienne à user. Quelle commande saisir ?
Pour terminer, il est possible d'utiliser l'option -R avec chown. Ceci permet de changer également le propriétaire des sous-dossiers d'un dossier (très utile).
Gestion des droits
Rappels
- Chaque fichier ou dossier (un dossier est un fichier pour Linux) possède une liste de droits appelés droits d'accès.
- Ces droits indiquent qui peut lire (voir le contenu du fichier), écrire (modifier le contenu du fichier), ou exécuter (si c'est un script ou un programme) le fichier.
- Pour voir ces droits il faut demander un affichage détaillé avec la commande ls -l.
Extrait du site openclassroom :

Remarque importante : root à tous les droits sur tous les fichiers !
Modifier les droits avec chmod
Méthode 1 avec des chiffres (chmod absolu) :
Les droits sont codés en octal (base 8). Chaque bloc de droits (utilisateur, groupe, autres) peut être exprimé par un entier entre 0 et 7.
Pour déterminer la valeur de chaque entier, il faut écrire chaque valeur octale en binaire (donc sur trois caractères binaires).
Exemple :
- Droits à obtenir sur le fichier essai : rwx rw- --x
- En binaire : 111 110 001
- En octal : 7 6 1
- Commande : chown 761 essai
Méthode 2 avec des lettres (chmod relatif) :
On travail bloc par bloc (propriétaire, groupe, autre) et droit par droit (lecture, écriture, exécution) avec un caractère indiquant l'ajout (+) ou la suppression (-).
Codage :
- u = user (propriétaire)
- g = group (groupe)
- o = other (autre)
Cette méthode est surtout utilisée pour modifier un droit sans repréciser les autres comme avec la méthode 1
Exemple :
- Ajouter le droit de lecture aux autres pour le fichier essai.
- chmod o+r essai
Plus d'exemples sur le site openclassroom (lien plus haut)
Exercice final
Connectez-vous en tant que root.
Supprimer tous les utilisateurs (avec un ID supérieur ou égal à 1001) ainsi que leur répertoire de connexion.
1. Quelle commande pour créer le dossier /home/mmi ?
2. Qui est logiquement propriétaire du dossier ?
3. Quels sont les droits affectés par défaut au dossier ?
Créez le fichier vide /home/mmi/essai
4. Quels sont les droits affectés par défaut au fichier ?
Pour ajouter du texte dans un fichier vide, il est possible d'utiliser la commande echo (voir glossaire).
Ajouter le texte blabla dans le fichier essai.
Connectez-vous en tant que user sur une seconde console (Alt+F2)
5. Est-il possible d'aller dans le dossier /home/mmi ? pourquoi ?
6. Est-il possible de consulter le contenu de /home/mmi/essai ? pourquoi ?
7. user peut-il ajouter le texte blibli (voir le glossaire de echo pour la syntaxe à utiliser ) à la fin de /home/mmi/essai ? Pourquoi ?
Revenir à root sur la console d'origine (Alf+F1)
Nous souhaitons limiter l'accès au dossier mmi aux seuls membres du groupe mmi qu'il faut créer.
8. Quelle commande pour créer un groupe d'utilisateur appelé mmi ?
9. Quels membres font parties du groupe mmi par défaut ?
10. Quelle commande pour que le dossier /home/mmi/ appartienne au groupe mmi ?
Allez dans la seconde console (Alt+F2). user peut toujours consulter le dossier /home/mmi
11. Comment faire pour lui en interdire l'accès ?
Testez votre solution.
Créez maintenant un utilisateur usermmi.
12. A l'aide de la commande usermod (voir glossaire) faire en sorte que cette utilisateur appartienne au groupe mmi.
La commande groups nomdeuser permet de voir a quels groupes appartient un utilisateur. Vérifier la prise en compte de votre commande de changement de groupe.
Connectez-vous en tant que usermmi sur une troisième console (Alt+F3) et vérifier l'accès au répertoire /home/user et au contenu du fichier /home/user/essai.