Aller au contenu principal

Système de fichiers & permissions

Progression

#Système de fichiers et permissions

Sous Unix, tout est fichier: un dossier, un périphérique, un socket… L’arborescence part de la racine /. Les sous‑répertoires ont des rôles usuels: /etc pour la configuration, /var pour les données variables (logs, files d’attente), /home pour les dossiers utilisateurs, /tmp pour des fichiers temporaires.

Un même contenu peut avoir plusieurs “noms” via les liens. Les liens symboliques (symlinks) se comportent comme des raccourcis; les liens matériels (hard links) donnent plusieurs chemins vers un même inode (identité du fichier sur disque).

#Lire une ligne de ls -l

Dans -rwxr-x--- 1 alice dev 12K 3 sept 10:00 script.sh, les 10 premiers caractères décrivent le type (- fichier, d dossier) et les permissions. rwx s’applique à trois catégories: propriétaire, groupe, autres. Ici, la propriétaire alice peut tout faire (rwx), les membres du groupe dev peuvent lire/entrer mais pas écrire (r-x), les autres n’ont aucun droit (---).

Changer les permissions revient à allumer/éteindre des bits:

bashbash
1# Lecture/écriture/exec pour le propriétaire, lecture/exec pour le groupe, rien pour les autres2chmod 750 script.sh3 4# Notation symbolique: enlever l'exécution au groupe, l'ajouter au propriétaire5chmod g-x,u+x script.sh

La propriété se gère avec chown (owner) et chgrp (groupe). umask fixe les permissions par défaut lors de la création de fichiers.

#Espace disque et tailles

Pour savoir où part l’espace:

bashbash
1df -h                   # occupation par système de fichiers2du -sh * | sort -h      # poids des éléments du dossier courant

N’hésitez pas à investiguer récursivement, mais attention aux dossiers volumineux comme .git ou node_modules.

#Bonnes pratiques

Séparez code et données; évitez sudo dans les scripts (privilégiez une élévation ciblée au besoin); comprenez ce que vous tapez; documentez un minimum votre structure de dossiers et planifiez des sauvegardes.

#Animation: de rwx à umask, setuid/sgid/sticky

rwx sur u/g/o
Proprio, groupe, autres
umask
Masque soustractif à la création
setuid/sgid
Exécuter avec uid/gid du fichier
sticky
Sur dir: seul le proprio peut supprimer
umask et répertoires

umask masque des bits: un umask 022 donne 755 pour les dossiers et 644 pour les fichiers (qui n’ont pas d’x par défaut). setgid sur un dossier force l’héritage du groupe.

setuid/sgid/sticky
  • setuid (s sur u): rare, sensible; à limiter.
  • setgid (s sur g): utile pour partager un groupe sur un répertoire de projet.
  • sticky (t sur o): sur /tmp, empêche de supprimer les fichiers d’autrui.

Mini‑exercice: calculez les permissions effectives d’un fichier créé avec umask 027. Que se passe‑t‑il pour un dossier ? Placez setgid sur un dossier d’équipe et vérifiez l’héritage de groupe.