Module 1 — Administration Linux essentielle pour le DevOps
Bonne lecture et bon apprentissage ! Junior TSAFACK – 12/09/2026 Temps de lecture estimé : 9 minutes
Pourquoi ce module existe
Section titled “Pourquoi ce module existe”Tous les cours DevSecOps de ce site (CI/CD, OAuth, JWT…) supposent qu’on sait déjà naviguer dans un serveur Linux, lire ses journaux, gérer ses processus et diagnostiquer une panne. Ce module comble ce prérequis : il ne s’agit pas d’une liste exhaustive de commandes (les pages man existent déjà pour ça), mais d’une organisation par cas d’usage réel — ce que vous faites pour résoudre un problème, pas juste ce qu’une commande fait dans l’abstrait.
Toutes les commandes de ce module ont été vérifiées sur une vraie machine Debian 13 (le même environnement que le cours Installer Podman sur Debian 13).
Fichiers et répertoires
Section titled “Fichiers et répertoires”| Besoin | Commande | Exemple |
|---|---|---|
| Lister avec détails | ls -la |
ls -la /var/log |
| Trouver un fichier par nom | find |
find / -name "*.conf" -type f |
| Trouver par date de modification | find -mtime |
find /var/log -mtime +7 (plus vieux que 7 jours) |
| Rechercher du texte dans des fichiers | grep -r |
grep -rn "ERROR" /var/log/app/ |
| Copier en préservant les métadonnées | cp -a |
cp -a /etc/nginx /backup/nginx-$(date +%F) |
| Lier un fichier sans le dupliquer | ln -s |
ln -s /opt/app/releases/v2 /opt/app/current |
| Voir l’espace disque par dossier | du -sh |
`du -sh /var/log/* |
Le pattern du -sh * | sort -rh | head (trouver ce qui prend le plus de place) revient si souvent en astreinte qu’il vaut la peine d’être mémorisé tel quel.
Processus
Section titled “Processus”| Besoin | Commande |
|---|---|
| Voir tous les processus | ps aux |
| Trier par consommation CPU | ps -eo pid,comm,%cpu,%mem --sort=-%cpu |
| Vue interactive en temps réel | top / htop |
| Tuer un processus proprement | kill -TERM <pid> (laisse le temps de se fermer) |
| Tuer sans négociation | kill -KILL <pid> (= kill -9, dernier recours) |
| Trouver quel processus écoute sur un port | lsof -i :8080 ou ss -tlnp |
La différence entre SIGTERM (-TERM) et SIGKILL (-9) compte en production : SIGTERM permet à l’application de fermer proprement ses connexions et vider ses buffers, SIGKILL l’arrête instantanément sans lui laisser cette chance — à réserver aux processus qui ne répondent plus à SIGTERM.
Disques et système de fichiers
Section titled “Disques et système de fichiers”| Besoin | Commande |
|---|---|
| Espace disponible par partition | df -h |
| Lister les points de montage | mount | column -t |
| Monter un disque | mount /dev/sdb1 /mnt/data |
| Vérifier l’intégrité d’un système de fichiers | fsck /dev/sdb1 (à froid, disque démonté) |
| Voir l’utilisation des inodes (pas seulement l’espace) | df -i |
df -h peut mentir : un disque à 60 % d’espace utilisé peut être plein en inodes (souvent le cas avec des millions de petits fichiers, par exemple des sessions PHP ou des logs par requête) — df -i révèle ce cas.
Réseau
Section titled “Réseau”| Besoin | Commande |
|---|---|
| Ports en écoute | ss -tulpn |
| Tester la connectivité vers un hôte | ping -c 4 exemple.com |
| Tracer le chemin réseau | traceroute exemple.com |
| Résoudre un nom de domaine | dig exemple.com ou nslookup exemple.com |
| Télécharger / tester une API | curl -i https://api.exemple.com/health |
| Copier des fichiers vers un serveur distant | scp fichier.tar.gz user@serveur:/chemin/ |
ss a remplacé netstat dans les distributions modernes (plus rapide, lit directement les structures noyau) — les deux existent encore, mais ss est la commande à privilégier aujourd’hui.
Utilisateurs et permissions
Section titled “Utilisateurs et permissions”| Besoin | Commande |
|---|---|
| Ajouter un utilisateur | useradd -m -s /bin/bash alice |
| Ajouter à un groupe | usermod -aG docker alice |
| Changer les droits | chmod 640 fichier.conf |
| Changer le propriétaire | chown app:app /opt/app |
| Voir à quels groupes appartient un utilisateur | groups alice ou id alice |
Les permissions Linux se lisent en trois blocs (propriétaire / groupe / autres), chacun avec lecture (4) / écriture (2) / exécution (1) : 640 = propriétaire peut lire+écrire (6), groupe peut seulement lire (4), les autres n’ont aucun droit (0). C’est le réglage classique d’un fichier de configuration contenant des secrets.
Archivage et compression
Section titled “Archivage et compression”| Besoin | Commande |
|---|---|
| Créer une archive compressée | tar -czf archive.tar.gz dossier/ |
| Extraire une archive | tar -xzf archive.tar.gz |
| Lister le contenu sans extraire | tar -tzf archive.tar.gz |
| Compresser un seul fichier | gzip fichier.log |
Journalisation et audit
Section titled “Journalisation et audit”| Besoin | Commande |
|---|---|
| Journal système (systemd) | journalctl -u nom-du-service -f |
| Suivre un fichier de log en direct | tail -f /var/log/app/error.log |
| Filtrer un log sur une plage de dates | journalctl --since "1 hour ago" |
| Voir les dernières connexions | last |
| Voir les tentatives de connexion échouées | lastb (nécessite les droits root) |
Ce que vous allez construire ensuite
Section titled “Ce que vous allez construire ensuite”Ce module de référence prépare le terrain : le Module 2 réutilise concrètement ces commandes à l’intérieur de vrais scripts d’automatisation — supervision, rotation de logs, sauvegardes, audit de sécurité — réellement exécutés sur une machine Debian, pas de simples extraits théoriques.