Aller au contenu principal

Chapitre 3.5 - Permissions Fichiers

Objectifs d'Apprentissage​

À la fin de ce chapitre, vous serez capable de:

  • Comprendre le système de permissions Linux
  • Lire et interpréter les permissions
  • Modifier les permissions avec chmod
  • Changer propriétaire et groupe avec chown

Qu'est-ce que les Permissions?​

Les permissions Linux contrôlent qui peut lire, écrire ou exécuter un fichier. C'est un système de sécurité fondamental.

Trois niveaux:

  • Owner (Propriétaire): Créateur du fichier
  • Group (Groupe): Groupe propriétaire
  • Other (Autres): Tous les autres utilisateurs

Types de Permissions​

r (Read - Lecture)​

Pour fichiers:

  • Lire le contenu
  • Afficher avec cat, less, etc.

Pour répertoires:

  • Lister le contenu (ls)

w (Write - Écriture)​

Pour fichiers:

  • Modifier le contenu
  • Écraser le fichier

Pour répertoires:

  • Créer des fichiers
  • Supprimer des fichiers

x (Execute - Exécution)​

Pour fichiers:

  • Exécuter comme programme
  • Scripts, binaires

Pour répertoires:

  • Accéder au répertoire (cd)
  • Nécessaire pour naviguer

Lecture des Permissions​

Format Long (ls -l)​

$ ls -l fichier.txt
-rwxr-xr-- 1 user group 1024 Jan 1 12:00 fichier.txt

Décomposition:

- rwx r-x r-- 1 user group 1024 Jan 1 12:00 fichier.txt
│ ││ ││ ││ │ │ │ │ │
│ ││ ││ ││ │ │ │ │ └─ Nom
│ ││ ││ ││ │ │ │ └────── Taille
│ ││ ││ ││ │ │ └──────────── Groupe
│ ││ ││ ││ │ └───────────────── Propriétaire
│ ││ ││ ││ └─────────────────── Liens
│ ││ ││ │└────────────────────── Autres: r--
│ ││ ││ └─────────────────────── Groupe: r-x
│ ││ │└────────────────────────── Propriétaire: rwx
│ ││ └─────────────────────────── Type: - (fichier)
│ └─────────────────────────────── Type: d (répertoire), l (lien)

Format Octal​

# rwx = 111 (binaire) = 7 (décimal)
# r-x = 101 (binaire) = 5 (décimal)
# r-- = 100 (binaire) = 4 (décimal)

# Exemple: rwxr-xr-- = 754

Correspondance:

  • r = 4
  • w = 2
  • x = 1
  • - = 0

Exemples:

  • rwx = 4+2+1 = 7
  • r-x = 4+0+1 = 5
  • r-- = 4+0+0 = 4
  • --- = 0+0+0 = 0

Modifier les Permissions (chmod)​

Méthode Symbolique​

# Ajouter permissions
chmod u+x fichier.txt # Propriétaire: +x
chmod g+w fichier.txt # Groupe: +w
chmod o+r fichier.txt # Autres: +r
chmod a+x fichier.txt # Tous: +x

# Retirer permissions
chmod u-x fichier.txt # Propriétaire: -x
chmod g-w fichier.txt # Groupe: -w

# Définir permissions
chmod u=rwx fichier.txt # Propriétaire: rwx
chmod g=rx fichier.txt # Groupe: r-x
chmod o=r fichier.txt # Autres: r--

# Combinaisons
chmod u+x,g+w fichier.txt
chmod u=rwx,g=rx,o=r fichier.txt

Symboles:

  • u: User (propriétaire)
  • g: Group (groupe)
  • o: Other (autres)
  • a: All (tous)

Opérateurs:

  • +: Ajouter
  • -: Retirer
  • =: Définir

Méthode Octale​

# Format: chmod ABC fichier
# A = Propriétaire, B = Groupe, C = Autres

chmod 755 fichier.txt # rwxr-xr-x
chmod 644 fichier.txt # rw-r--r--
chmod 600 fichier.txt # rw------- (privé)
chmod 777 fichier.txt # rwxrwxrwx (tous droits)

# Récursif
chmod -R 755 repertoire/

Permissions courantes:

  • 755: Exécutable (scripts, programmes)
  • 644: Fichiers normaux (lecture/écriture)
  • 600: Fichiers privés (propriétaire seulement)
  • 700: Répertoire privé

Changer Propriétaire et Groupe (chown)​

chown​

# Changer propriétaire
chown user fichier.txt

# Changer propriétaire et groupe
chown user:group fichier.txt

# Changer seulement le groupe
chown :group fichier.txt
chgrp group fichier.txt

# Récursif
chown -R user:group repertoire/

Exemples:

# Donner à user1
chown user1 fichier.txt

# Donner à user1, groupe users
chown user1:users fichier.txt

# Récursif sur un répertoire
chown -R www-data:www-data /var/www/

Permissions Spéciales​

SUID (Set User ID)​

Exécuter avec les permissions du propriétaire:

chmod u+s fichier
# Exemple: /usr/bin/passwd (s au lieu de x)

SGID (Set Group ID)​

Exécuter avec les permissions du groupe:

chmod g+s fichier

Sticky Bit​

Empêche la suppression par d'autres:

chmod +t repertoire/
# Exemple: /tmp (t au lieu de x)

Masque par Défaut (umask)​

Le umask détermine les permissions par défaut des nouveaux fichiers:

# Voir le umask actuel
umask

# Définir umask
umask 022 # Fichiers: 644, Répertoires: 755
umask 002 # Fichiers: 664, Répertoires: 775

Calcul:

  • Fichiers: 666 - umask
  • Répertoires: 777 - umask

Exemples Pratiques​

Fichier Privé​

chmod 600 fichier.txt
# Seul le propriétaire peut lire/écrire

Script Exécutable​

chmod 755 script.sh
# Tous peuvent exécuter, propriétaire peut modifier

Répertoire Partagé​

mkdir shared
chmod 775 shared
chgrp developers shared
# Groupe developers peut lire/écrire

Fichiers Web​

chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;

Résumé​

Dans ce chapitre, vous avez appris:

Permissions: r (lecture), w (écriture), x (exécution)
Niveaux: Propriétaire, Groupe, Autres
Lecture: ls -l, format symbolique et octal
chmod: Modifier permissions (symbolique ou octal)
chown: Changer propriétaire et groupe
Spéciales: SUID, SGID, Sticky Bit
umask: Permissions par défaut


Prochaines Étapes​

Chapitre 3.6: Recherche de Fichiers
Chapitre 3.7: Liens Symboliques et Durs


Chapitre créé le: Décembre 2024