← Sommaire SkyLinux

Leçon 03 : Permissions Linux

Dans cette leçon, tu vas maîtriser les permissions Linux, un concept fondamental pour la sécurité et l'administration système.


1. Comprendre les permissions

Qu'est-ce que les permissions ?

Sous Linux, chaque fichier et dossier a des **permissions** qui définissent qui peut :

Trois types d'utilisateurs

CatégorieDescription
**Propriétaire (Owner)**L'utilisateur qui a créé le fichier
**Groupe (Group)**Le groupe associé au fichier
**Autres (Others)**Tous les autres utilisateurs

Notation symbolique

| propriétaire | Groupe | Autres |

rwxrwxrwx
SymboleSignification
rLecture autorisée
wÉcriture autorisée
xExécution autorisée
-Permission refusée

2. Voir les permissions

Commande ls -l

ls -l /home/david/fichier.txt

Résultat :

-rw-r--r-- 1 david david 1234 Mar 10 10:00 fichier.txt

Décryptage :

- rw- r-- r-- 1 david david 1234 Mar 10 10:00 fichier.txt

│ │ │ │ │ │ │ │ │ │

Type│Owner │Group │Other│Link │Owner │Group │Size │Date │Name

CaractèreType
-Fichier régulier
dRépertoire
lLien symbolique
cPériphérique caractère
bPériphérique bloc

3. Modifier les permissions

Commande chmod

#### Notation symbolique

# Ajouter une permission

chmod +x script.sh # Ajouter exécution pour tous

chmod u+x script.sh # Propriétaire peut exécuter

chmod g+w dossier/ # Groupe peut écrire

chmod o-r fichier.txt # Autres ne peuvent plus lire

# Retirer une permission

chmod -w fichier.txt # Retirer écriture pour tous

# Définir exactement

chmod u=rwx,g=rx,o=r fichier

#### Notation octale

#Valeurs

r = 4

w = 2

x = 1

  • = 0

# Exemples

chmod 777 fichier # rwxrwxrwx (tout permis)

chmod 755 fichier # rwxr-xr-x (standard)

chmod 644 fichier # rw-r--r-- (lecture pour tous)

chmod 700 fichier # rwx------ (propriétaire seul)

chmod 600 fichier # rw------- (propriétaire seul)

Tableau des permissions Octales

OctalSymboliqueDescription
0---Aucune permission
1--xExécution
2-w-Écriture
3-wxÉcriture + exécution
4r--Lecture
5r-xLecture + exécution
6rw-Lecture + écriture
7rwxTout

4. Modifier propriétaire et groupe

Chown - Changer le propriétaire

# Changer le propriétaire

sudo chown utilisateur fichier

# Changer propriétaire et groupe

sudo chown utilisateur:groupe fichier

# Changer le groupe seulement

sudo chown :groupe fichier

Chgrp - Changer le groupe

sudo chgrp groupe fichier

Options utiles

# Récursif (dossiers)

sudo chown -R utilisateur dossier/

# Préserver les liens symbolique

sudo chown -h lien_symbolique

Exemples pratiques

# Rendre un script exécutable

chmod +x monscript.sh

# Permettre l'écriture au groupe

chmod g+w dossier/

# Serveur web (Apache/Nginx)

sudo chown -R www-data:www-data /var/www/html/

# Dossier partagé

sudo chown -R root:shared /partage/

sudo chmod -R 2775 /partage/ # SGID pour hériter


5. Permissions spéciales

SetUID (4000)

Exécute avec les droits du propriétaire (rare, dangéreux).

# Ajouter

chmod 4755 executable

# Notation symbolique

chmod u+s executable

SetGID (2000)

Les fichiers héritent du groupe du répertoire.

chmod 2755 dossier/

chmod g+s dossier/

Sticky Bit (1000)

Sur un répertoire, seuls les propriétaires peuvent supprimer leurs fichiers.

chmod 1777 /tmp

chmod +t /tmp


6. Umask

Qu'est-ce que umask ?

umask définit les permissions par défaut pour les nouveaux fichiers.

# Voir umask actuel

umask

# Modifier pour la session

umask 022

# Rendre permanent (ajouter dans ~/.bashrc)

echo "umask 022" >> ~/.bashrc

Calculer umask

Pour un fichier (par défaut 666) :

  • umask 022 → 666 - 022 = 644

Pour un répertoire (par défaut 777) :

  • umask 022 → 777 - 022 = 755

7. Propriétés avancées des fichiers

ACL (Access Control Lists)

Pour des permissions plus fines, utiliser les ACL.

# Installer si besoin

sudo apt install acl

# Voir les ACL

getfacl fichier

# Ajouter une permission ACL

setfacl -m u:utilisateur:rwx fichier

# Supprimer ACL

setfacl -x u:utilisateur fichier

# Par défaut (pour nouveaux fichiers)

setfacl -m d:u:utilisateur:rx dossier/


8. Bonnes pratiques de sécurité

Permissions recommandées

Fichier/DossierPermissionsRaison
Scripts shell755 (rwxr-xr-x)Exécutable par tous
Fichiers personnels600 (rw-------)Privé
Clés SSH600 (rw-------)Sécurisé
Répertoire web755Lecture publique
/tmp1777Temporaire mais protégé
Fichiers config système644Lecture, écriture root

⚠️ Commandes dangereuses à éviter

chmod -R 777 / # DANGER!

chmod -R 777 /home # DANGER!

chmod -R 777 /etc # TRES DANGER!

chmod 777 /etc/passwd # DANGER!


9. Exercices pratiques

Exercice 1 : Script exécutable

# Créer un script

echo '#!/bin/bash' > test.sh

echo 'echo "Hello"' >> test.sh

# Rendre exécutable

chmod +x test.sh

# Exécuter

./test.sh

Exercice 2 : Partage de dossier

# Créer un groupe

sudo groupadd partage

# Ajouter des utilisateurs

sudo usermod -aG partage utilisateur1

sudo usermod -aG partage utilisateur2

# Configurer le dossier

sudo chown :partage /partage

sudo chmod 2775 /partage


10. Résumé

CommandeDescription
ls -lVoir les permissions
chmodModifier les permissions
chownModifier le propriétaire
chgrpModifier le groupe
umaskPermissions par défaut
getfaclVoir ACL
setfaclModifier ACL

Maîtrise les permissions pour sécuriser ton système Linux ! 🔐


Complément: Permissions avancées

Introduction

Dans la leçon 3, nous avons vu les bases des permissions Linux. Ici, nous allons plus loin : les permissions spéciales (SUID, SGID, Sticky Bit), les ACL (Listes de Contrôle d'Accès), la gestion des fichiers setuid/setgid, et des techniques avancées pour administrer les droits sur un système.

Rappel : le système de permissions classique

Chaque fichier possède trois triplets de permissions :

chmod en notation octale avancée

Tu connais sûrement chmod 755 fichier. Mais il existe des combinaisons plus fines :

Les permissions spéciales

Quand un fichier à le bit SUID, il s'exécute avec les droits de son propriétaire, pas de l'utilisateur qui le lance. Exemple classique : passwd.

Quand tu changes ton mot de passe, tu modifies /etc/shadow — mais tu n'as pas le droit d'écrire dans ce fichier. Le programme passwd à le bit SUID root, donc il s'exécute avec les droits root.

⚠️ Sécurité : Le SUID est dangereux sur les scripts. Un programme SUID root mal sécurisé peut donner un shell root à un attaquant. Utilise-le avec parcimonie.

Sur un fichier : même principe que SUID, mais avec les droits du groupe. Sur un répertoire : tous les fichiers créés héritent du groupe du répertoire.

Sur un répertoire partagé (comme /tmp), le Sticky Bit empêche quiconque de supprimer les fichiers des autres.

Tout le monde peut écrire dans /srv/partage, mais chacun ne peut supprimer que ses propres fichiers.

Les ACL — Listes de Contrôle d'Accès

Les ACL permettent d'attribuer des permissions à plusieurs utilisateurs ou groupes sur un même fichier, au-delà du schéma classique propriétaire/groupe/autres.

Quand des ACL sont actives, un + apparaît dans ls -l :

Le mask ACL limite les permissions maximales accordées via ACL. Même si tu donnes rwx à alice, le mask peut les réduire.