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:
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:
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
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 (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.