Skip to content

Fiche de Révision : Gestion des Permissions sous Linux

1. Concepts de Base

  • Trois Permissions :

    • r (read / lecture) : Voir le contenu d'un fichier / lister un répertoire.
    • w (write / écriture) : Modifier un fichier / ajouter ou supprimer dans un répertoire.
    • x (execute / exécution) : Lancer un fichier / traverser un répertoire.
  • Trois Catégories d'Utilisateurs :

    • u (user) : Le propriétaire du fichier.
    • g (group) : Les membres du groupe propriétaire.
    • o (others) : Tous les autres utilisateurs.
  • Visualisation : Commande ls -l

    - rw- r-- r--  1  user  group  1024 Dec 15 10:30 fichier.txt
    | --- --- ---
    |  |   |   |
    |  |   |   -> o (Autres)
    |  |   -> g (Groupe)
    |  -> u (Propriétaire)
    -> Type (- = fichier, d = répertoire)

2. Modification des Permissions : chmod

  • Notation Symbolique (lettres) :

    • Syntaxe : chmod [ugoa][+-=][rwx] fichier
    • Exemples :
      • Ajouter l'exécution au propriétaire : chmod u+x script.sh
      • Retirer l'écriture au groupe : chmod g-w data.csv
      • Donner lecture seule aux autres : chmod o=r rapport.pdf
      • Appliquer à tous (récursif) : chmod -R a+r dossier/
  • Notation Octale (chiffres) :

    • Valeurs : r=4, w=2, x=1. On additionne les valeurs.
    • 7 = rwx (4+2+1)
    • 6 = rw- (4+2)
    • 5 = r-x (4+1)
    • 4 = r-- (4)
    • 0 = ---
    • Syntaxe : chmod [Propriétaire][Groupe][Autres] fichier
    • Exemples :
      • chmod 755 script.shrwxr-xr-x
      • chmod 644 fichier.txtrw-r--r--
      • chmod 600 cle_priveerw-------

3. Modification de la Propriété

  • Changer le propriétaire (et/ou le groupe) : chown

    • chown alice fichier.txt (change le propriétaire)
    • chown alice:devs fichier.txt (change propriétaire et groupe)
    • chown -R alice:devs dossier/ (récursif)
  • Changer le groupe uniquement : chgrp

    • chgrp devs fichier.txt

Note : Seul root peut changer le propriétaire d'un fichier.

4. Permissions Spéciales

PermissionOctalSymboleRôle sur un FichierRôle sur un RépertoireExemple
SetUID (SUID)4000u+sExécuter avec les droits du propriétaire.(Sans effet)/usr/bin/passwd
SetGID (SGID)2000g+sExécuter avec les droits du groupe.Les fichiers créés héritent du groupe du répertoire.Dossier de collaboration
Sticky Bit1000+t(Sans effet)Seul le propriétaire du fichier (ou root) peut le supprimer./tmp
  • Visualisation :
    • s (minuscule) : Permission x présente.
    • S (majuscule) : Permission x absente (ne fonctionnera pas).
    • t (minuscule) : Permission x présente.
    • T (majuscule) : Permission x absente.

5. Permissions par Défaut : umask

  • Rôle : umask définit les permissions qui sont retirées à la création d'un fichier ou d'un répertoire.

  • Calcul : Permissions effectives = Permissions de base - umask

    • Base pour les fichiers : 666 (rw-rw-rw-)
    • Base pour les répertoires : 777 (rwxrwxrwx)
  • Exemple avec umask 022 :

    • Nouveau Fichier : 666 - 022 = 644 (rw-r--r--)
    • Nouveau Répertoire : 777 - 022 = 755 (rwxr-xr-x)
  • Commandes :

    • umask : Affiche le umask actuel (ex: 0022).
    • umask 077 : Définit un umask privé (résultat : 600 pour fichiers, 700 pour répertoires).

6. Bonnes Pratiques

  • Principe du moindre privilège : Ne donnez que les droits strictement nécessaires. Évitez 777.
  • Clés SSH : chmod 700 ~/.ssh et chmod 600 ~/.ssh/id_rsa.
  • Scripts : chmod 755 mon_script.sh (exécutable par tous, modifiable par vous seul).
  • Collaboration : Créez un groupe, utilisez chgrp, et appliquez chmod 2775 (SGID) sur le dossier partagé pour que tous les nouveaux fichiers appartiennent au bon groupe.

.