Aller au contenu

La gestion des droits sous Linux

1. Objectif du cours

Comprendre le modèle de droits sous Linux (catégories d'utilisateurs, droits) et savoir vérifier, modifier et contrôler les droits simples et spéciaux (SUID, SGID, Sticky Bit). Mettre en pratique les commandes de base pour manipuler permissions et propriétaires.

2. Notions et définitions essentielles

  • Catégories d'utilisateurs : propriétaire (user, u), groupe (group, g), autres (others, o).
  • Droits : lecture (r), écriture (w), exécution (x).
  • Notation texte : 1 caractère pour le type (- = fichier, d = répertoire, l = lien) suivi de 9 caractères (3 blocs de 3 pour u/g/o).
  • Représentation octale : r=4, w=2, x=1 ; chaque bloc se traduit par la somme correspondante (ex. rw- = 6).
  • Droits spéciaux : SUID (endosse les droits du propriétaire à l'exécution), SGID (endosse les droits du groupe ; sur répertoires force l'héritage de groupe), Sticky Bit (empêche la suppression d'un fichier par un autre que son propriétaire).
  • Propriétaires : chaque fichier a un propriétaire et un groupe ; UID/GID sont des identifiants numériques (root = 0).

3. Fonctionnement et principes

  • Les 9 caractères décrivent séparément les droits du propriétaire, du groupe et des autres ; absence de droit est marquée par '-'.
  • Les droits sont modifiables par le propriétaire du fichier et par root uniquement. Le propriétaire doit avoir le droit d'écriture pour modifier les permissions de son propre fichier.
  • Les répertoires nécessitent le droit d'exécution pour être ouverts et le droit de lecture pour en lister le contenu ; ces deux droits ont des rôles distincts (traverser vs lister).
  • Les représentations symbolique et octale sont équivalentes : on peut ajouter/retirer/affecter des droits par symboles (u/g/o, + / - / =) ou réécrire complètement par triplet octal (ex. 755).
  • Les bits spéciaux s'ajoutent comme préfixes octaux (SUID=4000, SGID=2000, Sticky=1000) ou par symboles spécifiques (u+s, g+s, o+t). Le SGID sur un répertoire provoque l'héritage du groupe propriétaire pour les nouveaux fichiers créés dans ce répertoire.

4. Commandes et manipulations

Regroupées par procédure. (Extraits exacts tels que présentés dans le document.)

  • Vérification des droits et contexte :
  • cd /Documents && touch test
  • ls -l
  • id
  • cat /etc/passwd

  • Création basique / super-utilisateur :

  • touch test
  • sudo touch test2

  • Modifier les droits — méthode symbolique :

  • chmod g+w test
  • chmod o-r test
  • chmod a=rwx test
  • chmod g-w,o-wx test

  • Modifier les droits — méthode octale :

  • chmod 755 test
  • chmod -R 751 Repertoire (option -R pour récursif)
  • chmod -R 700 Repertoire

  • Manipulation SUID / SGID / Sticky (exemples) :

  • ls -l /usr/bin/passwd (exemple d'un binaire avec SUID)
  • touch fichier
  • chmod u+s fichier
  • chmod u-s fichier
  • chmod 4755 fichier (SUID en octal)
  • touch fichier2
  • chmod g+s fichier2
  • chmod 2755 Repertoire (SGID en octal)
  • mkdir -p DossierPartage
  • chmod 777 DossierPartage
  • chmod o + t DossierPartage
  • chmod 1755 DossierPartage (Sticky Bit en octal)

  • Changement de propriétaire :

  • sudo chown -R toto Repertoire
  • sudo chown -R toto:toto Repertoire

5. Sécurité et bonnes pratiques

  • Seules deux entités peuvent modifier les droits d'un fichier : son propriétaire et root. Utiliser sudo quand l'utilisateur n'est pas propriétaire.
  • Le propriétaire doit posséder le droit d'écriture pour modifier les permissions de son fichier.
  • Prudence avec les opérations récursives (-R) sur chmod/chown : elles impactent toute une arborescence et peuvent bloquer l'accès ou altérer le fonctionnement du système si mal appliquées.
  • Tenir compte des différences par distribution (ex. Debian vs Ubuntu) : les permissions par défaut peuvent varier et impacter l'accès des groupes.
  • Utiliser le Sticky Bit pour dossiers partagés afin d'empêcher la suppression de fichiers par des utilisateurs qui n'en sont pas propriétaires.

6. Points essentiels à retenir pour le TSSR

  • Trois catégories d'utilisateurs (u, g, o) et trois droits (r, w, x) ; notation en 9 caractères.
  • Les droits se traduisent en octal : r=4, w=2, x=1 ; chaque bloc est la somme des valeurs présentes.
  • Exemples de valeurs courantes : fichier Debian par défaut = rw- r-- r-- (644), répertoire Debian = rwx r-x r-x (755).
  • Existence de trois bits spéciaux avec effets distincts : SUID (exécution avec droits du propriétaire), SGID (exécution avec droits du groupe ; sur répertoires force héritage de groupe), Sticky Bit (empêche suppression par d'autres).
  • Seuls le propriétaire et root peuvent changer permissions ; chown requiert des privilèges élevés et peut être récursif.
  • Pour ouvrir un répertoire il faut le droit d'exécution ; pour lister son contenu il faut le droit de lecture.
  • Application récurrente : modifier permissions symboliquement (u/g/o +/-/=) ou en octal (triplet ou préfixe 4 chiffres pour bits spéciaux).
  • SGID sur répertoire : nouveaux fichiers héritent du groupe du répertoire, et les sous-dossiers transmettent le SGID.
  • Sticky Bit utile pour collaboration : permet écriture mais protège contre suppression par autrui.
  • Toujours vérifier les conséquences avant d'appliquer des chmod/chown récursifs.

7. Tableau récapitulatif

Élément Signification Remarque utile
Type fichier (- / d / l) fichier / répertoire / lien Premier caractère de ls -l
Bloc de droits (u / g / o) propriétaire / groupe / autres Chaque bloc = 3 caractères
Mapping octal r=4, w=2, x=1 rw- = 6, r-x = 5, rwx = 7
Bits spéciaux SUID=4000, SGID=2000, Sticky=1000 S'appliquent comme préfixes octaux
Droit sur répertoire x = ouvrir, r = lister Combinaisons différentes pour traverser vs lire

8. Vérifications pratiques

(Présentation en actions — évite la recopie intégrale des commandes déjà listées.) - Visualiser l'affichage détaillé d'un fichier/répertoire pour vérifier type, droits et propriétaires (affichage long du terminal).
- Vérifier l'UID/GID et les groupes d'un utilisateur actif (consulter l'identité de l'utilisateur).
- Contrôler la présence des bits spéciaux dans la colonne des droits (lettres s/S/t dans la position d'exécution).
- Confirmer l'héritage de groupe après application du SGID sur un répertoire en regardant le groupe des nouveaux fichiers créés dans ce répertoire.
- Après chown/chmod récursifs, parcourir l'arborescence pour s'assurer que les changements ont bien été appliqués sur les éléments attendus.

9. Flashcards Anki

Combien de catégories d'utilisateurs existe-t-il dans le système de droits Linux ? :: 3 Que signifie la lettre 'w' dans la notation des droits ? :: écriture (Write) Dans quel ordre sont indiqués les droits ? :: rwx (read, write, execute) Combien de caractères composent la notation textuelle des droits ? :: 9 Quelle valeur octale correspond au droit de lecture ? :: 4 Quelle est la notation octale de 'rwx r-x r-x' ? :: 755 Quel préfixe octal correspond au SUID ? :: 4000 (préfixe 4) Qu'entraîne l'application du SGID sur un répertoire pour les fichiers créés à l'intérieur ? :: Ils appartiendront au groupe du propriétaire du répertoire Quel bit protège les fichiers d'un dossier partagé contre la suppression par un autre que le propriétaire ? :: Sticky Bit (préfixe 1000) Quelle commande doit précéder chown pour récupérer les droits nécessaires ? :: sudo