3 – Les systèmes de fichiers sur Linux

 

 

 3.1 – Les principaux systèmes de fichiers

ext4 (Fourth Extended Filesystem)

  • Le plus utilisé sur Linux actuellement
  • Successeur d'ext3, avec journalisation
  • Supporte des fichiers jusqu'à 16 To et des partitions jusqu'à 1 Eo
  • Très stable et performant
  • Utilise la journalisation pour prévenir la corruption de données

 

XFS

  • Conçu pour les hautes performances
  • Excellent pour les gros fichiers et les systèmes avec beaucoup de stockage
  • Utilisé par défaut sur Red Hat Enterprise Linux
  • Supporte des systèmes de fichiers très volumineux

 

Btrfs (B-tree File System)

  • Système moderne avec des fonctionnalités avancées
  • Snapshots, compression à la volée, RAID intégré
  • Détection et correction automatique des erreurs
  • Encore en développement actif

 

F2FS (Flash-Friendly File System)

  • Optimisé pour les supports flash (SSD, cartes SD)
  • Améliore les performances et la durée de vie des SSD

 

FAT32 / exFAT

  • Compatibilité multiplateforme (Windows, Mac, Linux)
  • Limité (FAT32 : fichiers de 4 Go max)
  • Utile pour les clés USB

 

NTFS

  • Système de fichiers Windows
  • Support en lecture/écriture sous Linux (via ntfs-3g)

 

tmpfs

  • Système de fichiers en mémoire RAM
  • Très rapide, mais non persistant
  • Utilisé pour /tmp ou /run

 

 

3.2 - Propriétés des fichiers et répertoires

3.2.1 - Types de fichiers

Sous Linux, tout est fichier. On distingue :

  • - : fichier régulier
  • d : répertoire (directory)
  • l : lien symbolique
  • c : périphérique caractère
  • b : périphérique bloc
  • s : socket
  • p : pipe nommé

 

3.2.2 - Propriétés principales

Droits d'accès (Permissions)

Les droits sont représentés par 10 caractères, par exemple : -rwxr-xr--

-  rwx  r-x  r--

│   │    │    │

│   │    │    └─ Autres (others)

│   │    └────── Groupe (group)

│   └─────────── Propriétaire (owner/user)

└─────────────── Type de fichier

Signification des lettres :

  • r (read) : lecture (4)
  • w (write) : écriture (2)
  • x (execute) : exécution (1)
  • - : permission absente

Valeurs numériques (octales) :

  • chmod 755 = rwxr-xr-x (7=4+2+1, 5=4+1, 5=4+1)
  • chmod 644 = rw-r--r--
  • chmod 777 = rwxrwxrwx (tous les droits)

Pour les répertoires :

  • r : lister le contenu
  • w : créer/supprimer des fichiers dedans
  • x : accéder au répertoire (traverser)

 

Propriétaire et Groupe

Chaque fichier appartient à :

  • Un utilisateur (propriétaire)
  • Un groupe

ls -l fichier.txt

-rw-r--r-- 1 utilisateur groupe 1024 Oct 14 10:30 fichier.txt

              │           │

              └───────────┴─ Propriétaire et groupe

Commandes :

  • chown utilisateur fichier : changer le propriétaire
  • chgrp groupe fichier : changer le groupe
  • chown utilisateur:groupe fichier : changer les deux

 

Bits spéciaux

SUID (Set User ID) - bit 4000

  • Sur un fichier exécutable : s'exécute avec les droits du propriétaire
  • Exemple : /usr/bin/passwd (permet aux utilisateurs de changer leur mot de passe)

 

SGID (Set Group ID) - bit 2000

  • Sur un fichier : s'exécute avec les droits du groupe
  • Sur un répertoire : les nouveaux fichiers héritent du groupe du répertoire

 

Sticky Bit - bit 1000

  • Sur un répertoire : seul le propriétaire peut supprimer ses fichiers
  • Exemple : /tmp (tout le monde peut créer, mais pas supprimer les fichiers des autres)

 

 

Autres propriétés

Nom du fichier :

  • Sensible à la casse (txt ≠ fichier.txt)
  • Peut contenir presque tous les caractères (éviter / et le caractère nul)
  • Les fichiers commençant par . sont cachés

 

Métadonnées (inode) :

  • Taille du fichier
  • Dates : création, modification, dernier accès
  • Nombre de liens (hard links)
  • Numéro d'inode : identifiant unique du fichier

 

Attributs étendus :

  • lsattr / chattr : attributs spécifiques Linux
    • i : immuable (non modifiable, même par root)
    • a : append only (ajout uniquement)
    • c : compressé automatiquement

Aucun commentaire