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.shLa 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 courantN’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.