Système de fichiers & navigation Linux
Sommaire
Arborescence, chemins, commandes fondamentales, puis le cœur de l'administration Linux : les droits et la gestion des comptes.
1. Arborescence Linux
Linux utilise une arborescence unique qui démarre à la racine /. Contrairement
à Windows, il n'y a pas de lettres de lecteur : les disques et partitions sont montés quelque part dans
cette arborescence.
| Répertoire | Rôle |
|---|---|
/ | Racine globale du système |
/home | Répertoires personnels des utilisateurs |
/root | Répertoire personnel du superutilisateur |
/bin, /usr/bin | Exécutables des commandes |
/sbin | Exécutables réservés à l'administration |
/etc | Fichiers de configuration système |
/var | Données variables : journaux (/var/log), sites web, files d'attente |
/tmp | Fichiers temporaires, vidés au redémarrage |
/opt | Logiciels installés hors gestionnaire de paquets |
/mnt, /media | Points de montage (manuels / amovibles) |
/proc, /sys | Systèmes de fichiers virtuels exposant l'état du noyau |
2. Chemins absolus et relatifs
- Chemin absolu : part de la racine, il est valable depuis n'importe où
(
/var/log/syslog). - Chemin relatif : dépend du répertoire courant (
../images/logo.png).
Raccourcis :
.— dossier courant..— dossier parent~— dossier personnel de l'utilisateur courant-— dossier précédent (cd -)
Le point d'attention classique : ./script.sh plutôt que script.sh.
Le répertoire courant n'est pas dans la variable PATH, il faut donc dire explicitement au shell
où chercher l'exécutable.
3. Commandes de navigation
pwd # afficher le répertoire courant
cd /var/www # se déplacer
ls -la # lister tous les fichiers, format long
mkdir -p a/b/c # créer une arborescence complète
touch fichier.txt # créer un fichier vide
cp -r source/ dest/ # copier (récursif pour un dossier)
mv fichier.txt /tmp/ # déplacer ou renommer
rm -rf dossier/ # supprimer récursivement, sans confirmation
Lire et rechercher
cat fichier.txt # afficher tout le contenu
less /var/log/syslog # affichage progressif (q pour quitter)
head -5 fichier.txt # les 5 premières lignes
tail -f /var/log/syslog # suivre un fichier en temps réel
nano fichier.txt # éditer
find /home -name "*.txt" # chercher par nom
find . -type f -mtime -7 # fichiers modifiés dans les 7 derniers jours
du -sh /var/log # taille d'un répertoire
df -h # espace libre par partition
rm -rf ne demande aucune confirmation et ne passe par aucune corbeille. Toujours relire la
commande avant de valider, en particulier si elle contient une variable ou un joker.
4. Droits et permissions
Chaque fichier appartient à un propriétaire et à un groupe. Trois droits sont définis pour trois catégories.
| Droit | Sur un fichier | Sur un répertoire |
|---|---|---|
r (read, 4) | Lire le contenu | Lister le contenu |
w (write, 2) | Modifier le contenu | Créer, renommer, supprimer à l'intérieur |
x (execute, 1) | Exécuter le fichier | Traverser le répertoire (y entrer) |
Les catégories sont u (propriétaire), g (groupe), o (autres), a (toutes).
-rwxr-x--- 1 alice devteam 4096 compile.sh
│└┬┘└┬┘└┬┘ └─┬─┘ └──┬──┘
│ u g o │ └── groupe propriétaire
│ └────────── utilisateur propriétaire
└── type : - fichier, d répertoire, l lien symbolique
Ici : le propriétaire lit / écrit / exécute (7), le groupe lit et exécute (5), les autres n'ont rien (0)
— soit 750.
chmod 750 compile.sh # notation octale
chmod u+x,g-w compile.sh # notation symbolique
chmod +x script.sh # rendre exécutable (cas le plus fréquent)
chmod -R 755 site/ # récursif
chown alice fichier.txt # changer le propriétaire
chown alice:devteam compile.sh # propriétaire et groupe
chgrp devteam compile.sh # groupe seulement
Piège du TP : retirer le droit x sur un répertoire le rend inaccessible même
si r est présent. On peut lister son nom, mais pas y entrer ni lire les fichiers qu'il contient.
Sur un répertoire, x est le droit de traversée.
5. Utilisateurs et groupes
sudo adduser etudiant1 # créer un utilisateur (interactif, crée le home)
sudo passwd etudiant1 # définir son mot de passe
su - etudiant1 # changer d'utilisateur
exit # revenir à la session précédente
id # UID, GID et groupes de l'utilisateur courant
whoami # nom de l'utilisateur courant
sudo groupadd devteam # créer un groupe
sudo usermod -aG devteam alice # ajouter alice au groupe (secondaire)
sudo usermod -g devteam alice # changer son groupe principal
L'option -a de usermod -aG est indispensable : sans elle, les groupes existants
sont remplacés au lieu d'être complétés. Une modification de groupe ne prend effet qu'à la
prochaine ouverture de session.
Les trois fichiers de référence
| Fichier | Contenu |
|---|---|
/etc/passwd | Comptes : nom, UID, GID, home, shell. Lisible par tous. |
/etc/group | Groupes et liste de leurs membres. |
/etc/shadow | Mots de passe hachés et politique d'expiration. Lisible par root uniquement. |
alice:x:1001:1001:Alice Martin:/home/alice:/bin/bash
│ │ │ │ │ │ └── shell de connexion
│ │ │ │ │ └───────────── répertoire personnel
│ │ │ │ └─────────────────────────── commentaire (GECOS)
│ │ │ └──────────────────────────────────── GID du groupe principal
│ │ └───────────────────────────────────────── UID
│ └──────────────────────────────────────────── mot de passe déporté dans /etc/shadow
└──────────────────────────────────────────────── nom de connexion
Le x en deuxième champ signale que le mot de passe n'est pas là : il est dans
/etc/shadow, illisible pour un utilisateur ordinaire. C'est ce qui empêche n'importe qui de récupérer
les empreintes pour les casser hors ligne.
passwd # changer son propre mot de passe
chage -l alice # dates de dernière modification et d'expiration
sudo chage -M 90 alice # durée de vie maximale du mot de passe
sudo
sudo exécute une commande avec les privilèges du superutilisateur, sous réserve d'appartenir au
groupe sudo (Debian / Ubuntu) ou wheel. On l'utilise plutôt que de se connecter
directement en root : chaque élévation est journalisée et rattachée à un compte nominatif,
ce qui préserve l'imputabilité.
6. Gestion de paquets
sudo apt update # rafraîchir la liste des paquets disponibles
sudo apt upgrade # mettre à jour les paquets installés
sudo apt install htop # installer
sudo apt remove htop # désinstaller
sudo apt search mot-cle # rechercher
dpkg -l | grep apache # lister ce qui est installé
apt update ne met rien à jour : il actualise seulement le catalogue. C'est
apt upgrade qui installe. Les deux s'enchaînent presque toujours.
7. Trouver de l'aide
man chmod # manuel complet (q pour quitter, / pour chercher)
chmod --help # aide courte
apropos permission # chercher une commande par mot-clé
which ls # emplacement de l'exécutable