Aller au contenu principal

Formation Système d'Exploitation Linux

Maîtrise des Systèmes Linux et Administration Serveur​

Code du cours: 420-XX
Session: Hiver 2025
Enseignant: Haythem Rehouma
Institution: inskillflow academy


Vue d'Ensemble du Cours​

Cette formation complète vous permettra de maîtriser les systèmes d'exploitation Linux, l'administration système et la gestion de serveurs. De l'introduction aux concepts avancés, vous apprendrez à administrer, sécuriser et optimiser des systèmes Linux en production.

Objectifs d'Apprentissage​

À la fin de ce cours, vous serez capable de:

  • Comprendre l'architecture et les concepts fondamentaux de Linux
  • Administrer des systèmes Linux (installation, configuration, maintenance)
  • Gérer les utilisateurs, permissions et sécurité système
  • Maîtriser le shell et l'automatisation avec des scripts
  • Configurer et gérer les réseaux Linux
  • Administrer les services système et les démons
  • Monitorer et déboguer des systèmes Linux
  • Déployer et maintenir des serveurs Linux en production

Approche Pédagogique​

70% Pratique - 30% Théorie

Chaque module combine:

  • Explications théoriques détaillées avec diagrammes Mermaid
  • Laboratoires pratiques hands-on
  • Exemples concrets et cas d'usage réels
  • Exercices et quiz de validation

📚 Plan de Cours - 13 Modules​

Cette formation est structurée en 13 modules progressifs qui vous mèneront de l'introduction à Linux jusqu'à l'administration avancée de serveurs en production. Chaque module est conçu pour construire sur les connaissances acquises précédemment.

Vue d'Ensemble de la Progression​

Structure des Modules​

Chaque module comprend:

  • Chapitres théoriques avec diagrammes et exemples
  • Laboratoires pratiques pour appliquer les concepts
  • Quiz de validation pour vérifier vos connaissances
  • Ressources complémentaires pour approfondir

MODULE 1 - Introduction à Linux​

Durée: 2-3 séances

Contenu:

  • Qu'est-ce que Linux et pourquoi l'utiliser?
  • Histoire et évolution (Unix → Linux)
  • Distributions Linux (Debian, Red Hat, Ubuntu, etc.)
  • Architecture Linux (Kernel, Shell, Système de fichiers)
  • Comparaison avec d'autres systèmes d'exploitation

Objectifs:

  • Comprendre le rôle de Linux dans l'informatique moderne
  • Identifier les composants principaux
  • Découvrir l'écosystème Linux

Labs:

  • Lab 1.1: Installation et Première Utilisation de Linux

MODULE 2 - Architecture du Système Linux​

Durée: 2-3 séances

Contenu:

  • Architecture détaillée du système
    • Kernel Linux
    • Processus système (init, systemd)
    • Gestion mémoire et swap
    • Système de fichiers virtuel (VFS)
  • Composants système
    • Shell et interpréteur de commandes
    • Bibliothèques système
    • Utilitaires système
  • Boot process et niveaux d'exécution
  • Communication inter-processus

Objectifs:

  • Comprendre le fonctionnement interne de Linux
  • Identifier le rôle de chaque composant
  • Visualiser les flux de communication système

Labs:

  • Lab 2.1: Analyse du processus de démarrage
  • Lab 2.2: Exploration de l'architecture système
  • Lab 2.3: Monitoring des composants système

MODULE 3 - Système de Fichiers​

Durée: 3-4 séances

Contenu:

  • Structure du système de fichiers Linux (FHS)
  • Navigation et commandes de base (cd, ls, pwd, mkdir, rmdir)
  • Gestion des fichiers (cp, mv, rm, touch)
  • Permissions fichiers (chmod, chown, chgrp)
  • Recherche de fichiers (find, locate, which, whereis)
  • Liens symboliques et durs
  • Types de systèmes de fichiers (ext4, xfs, btrfs)

Objectifs:

  • Naviguer efficacement dans le système de fichiers
  • Gérer les fichiers et répertoires
  • Comprendre et gérer les permissions
  • Utiliser les outils de recherche

Labs:

  • Lab 3.1: Navigation et Création
  • Lab 3.2: Gestion des Permissions
  • Lab 3.3: Recherche et Liens
  • Lab 3.4: Pratique Complète

MODULE 4 - Gestion des Processus​

Durée: 3-4 séances

Contenu:

  • Introduction aux processus Linux
  • Visualisation des processus (ps, top, htop)
  • Contrôle des processus (kill, killall, pkill)
  • Priorités et nice values
  • Processus en arrière-plan (jobs, fg, bg, nohup)
  • Signaux système
  • Processus zombies et orphelins

Objectifs:

  • Comprendre le cycle de vie des processus
  • Visualiser et contrôler les processus
  • Gérer les priorités et les jobs
  • Utiliser les signaux système

Labs:

  • Lab 4.1: Visualisation des Processus
  • Lab 4.2: Contrôle des Processus
  • Lab 4.3: Priorités et Nice
  • Lab 4.4: Jobs en Arrière-plan

MODULE 5 - Utilisateurs et Permissions​

Durée: 2-3 séances

Contenu:

  • Gestion des utilisateurs (useradd, usermod, userdel)
  • Gestion des groupes (groupadd, groupmod, groupdel)
  • Permissions fichiers (chmod, chown, chgrp)
  • Permissions numériques et symboliques
  • Sudo et privilèges élevés
  • ACL (Access Control Lists)
  • Quotas utilisateurs

Objectifs:

  • Créer et gérer des utilisateurs et groupes
  • Comprendre et configurer les permissions
  • Utiliser sudo de manière sécurisée
  • Implémenter les ACL

Labs:

  • Lab 5.1: Gestion des Utilisateurs
  • Lab 5.2: Gestion des Groupes
  • Lab 5.3: Permissions Avancées
  • Lab 5.4: Bonnes Pratiques

MODULE 6 - Scripting Shell​

Durée: 3-4 séances

Contenu:

  • Introduction au scripting Bash
  • Variables et paramètres
  • Structures de contrôle (if, for, while)
  • Fonctions et scripts réutilisables
  • Gestion des erreurs et debugging
  • Cron et crontab: planification de tâches
  • Syntaxe cron et exemples pratiques
  • Cron système vs cron utilisateur
  • systemd timers (alternative moderne)

Objectifs:

  • Maîtriser le scripting shell Bash
  • Automatiser des tâches administratives
  • Planifier des tâches avec cron et systemd timers
  • Créer des scripts robustes et maintenables

Labs:

  • Lab 6.1: Scripts Bash de base
  • Lab 6.2: Scripts avancés avec fonctions
  • Lab 6.3: Configuration et utilisation de cron
  • Lab 6.4: systemd timers et planification moderne

MODULE 7 - Réseau et Configuration​

Durée: 3-4 séances

Contenu:

  • Configuration réseau Linux
  • Interfaces réseau (ifconfig, ip, nmcli)
  • Routage et tables de routage
  • DNS et résolution de noms
  • Configuration IP statique vs DHCP
  • Pare-feu de base (iptables, firewalld)
  • Troubleshooting réseau

Objectifs:

  • Configurer et gérer les réseaux Linux
  • Comprendre le routage et le DNS
  • Sécuriser les communications réseau
  • Diagnostiquer les problèmes réseau

Labs:

  • Lab 7.1: Configuration d'interface réseau
  • Lab 7.2: Routage et tables de routage
  • Lab 7.3: Configuration DNS
  • Lab 7.4: Pare-feu et sécurité réseau

MODULE 8 - Services et Démon​

Durée: 3-4 séances

Contenu:

  • Gestion des services avec systemd
  • Unit files (service, timer, target)
  • Démarrage, arrêt et redémarrage de services
  • Services au démarrage (enable/disable)
  • Journal systemd (journalctl)
  • Cron avancé: crontab, /etc/cron.d, anacron
  • Gestion des logs cron
  • Bonnes pratiques pour les tâches planifiées
  • Alternatives: at, batch

Objectifs:

  • Administrer les services système
  • Comprendre systemd et les unit files
  • Maîtriser cron et les tâches planifiées
  • Gérer les logs et le monitoring

Labs:

  • Lab 8.1: Gestion des services systemd
  • Lab 8.2: Création de services personnalisés
  • Lab 8.3: Cron et crontab avancés
  • Lab 8.4: systemd timers vs cron

MODULE 9 - Sécurité Système​

Durée: 3-4 séances

Contenu:

  • Authentification et autorisation
  • Gestion des utilisateurs et groupes
  • Permissions fichiers (chmod, chown, ACL)
  • Sudo et privilèges élevés
  • Pare-feu (iptables, firewalld, ufw)
  • SELinux et AppArmor (introduction)
  • Audit de sécurité
  • Sécurité des crons: permissions et environnement

Objectifs:

  • Sécuriser un système Linux
  • Gérer les permissions et l'accès
  • Configurer et maintenir un pare-feu
  • Auditer la sécurité système

Labs:

  • Lab 9.1: Gestion des permissions
  • Lab 9.2: Configuration de sudo
  • Lab 9.3: Pare-feu et règles iptables
  • Lab 9.4: Audit de sécurité et logs

MODULE 10 - Gestion des Paquets​

Durée: 2-3 séances

Contenu:

  • Gestionnaires de paquets (apt, yum, dnf, pacman)
  • Installation et mise à jour de logiciels
  • Repositories et sources de paquets
  • Résolution de dépendances
  • Compilation depuis les sources
  • Gestion des paquets .deb et .rpm
  • Snap, Flatpak et AppImage

Objectifs:

  • Installer et gérer les logiciels Linux
  • Comprendre les différents systèmes de paquets
  • Résoudre les problèmes de dépendances
  • Utiliser les outils modernes (Snap, Flatpak)

Labs:

  • Lab 10.1: Gestion avec apt/yum
  • Lab 10.2: Configuration de repositories
  • Lab 10.3: Compilation depuis les sources
  • Lab 10.4: Snap et Flatpak

MODULE 11 - Monitoring et Logs​

Durée: 3-4 séances

Contenu:

  • Monitoring système (top, htop, iotop, vmstat)
  • Utilisation CPU, mémoire, disque
  • Processus et ressources
  • Logs système (/var/log, journald)
  • Rotation des logs (logrotate)
  • Monitoring des crons: logs et notifications
  • Outils de monitoring (sar, sysstat)
  • Alertes et notifications

Objectifs:

  • Monitorer les performances système
  • Analyser les logs et diagnostiquer les problèmes
  • Configurer la rotation des logs
  • Surveiller les tâches planifiées

Labs:

  • Lab 11.1: Monitoring des ressources système
  • Lab 11.2: Analyse des logs avec journalctl
  • Lab 11.3: Configuration de logrotate
  • Lab 11.4: Monitoring des crons et alertes

MODULE 12 - Administration Avancée​

Durée: 3-4 séances

Contenu:

  • Administration serveur en production
  • Backup et restauration
  • Maintenance et mises à jour système
  • Troubleshooting avancé
  • Performance tuning
  • Automatisation avec cron et scripts
  • Best practices pour les tâches planifiées
  • Documentation et procédures

Objectifs:

  • Administrer des serveurs Linux en production
  • Implémenter des stratégies de backup
  • Optimiser les performances
  • Automatiser les tâches administratives

Labs:

  • Lab 12.1: Stratégies de backup
  • Lab 12.2: Performance tuning
  • Lab 12.3: Automatisation complète avec cron
  • Lab 12.4: Projet final - Serveur Linux complet

Outils et Technologies​

Environnement de Développement​

  • Bash / Zsh: Shells Linux
  • SSH: Accès distant sécurisé
  • Vim / Nano / Emacs: Éditeurs de texte
  • Git: Contrôle de version
  • tmux / screen: Multiplexeurs de terminal

Distributions Linux​

  • Ubuntu / Debian: Distributions basées sur Debian
  • CentOS / RHEL / Fedora: Distributions basées sur Red Hat
  • Arch Linux: Distribution avancée
  • SUSE / openSUSE: Distribution entreprise

Outils Complémentaires​

  • systemd: Gestionnaire de services
  • rsync / scp: Transfert de fichiers
  • cron / systemd timers: Planification de tâches
  • iptables / firewalld: Pare-feu
  • logrotate / journald: Gestion des logs

Compétences Développées​

Compétences Techniques​

Administration Système:

  • Installation et configuration de systèmes Linux
  • Gestion des utilisateurs et permissions
  • Administration des services et processus
  • Maintenance et mise à jour système

Scripting et Automatisation:

  • Scripting shell (Bash)
  • Automatisation de tâches administratives
  • Planification avec cron et systemd
  • Gestion de configuration

Réseau et Sécurité:

  • Configuration réseau Linux
  • Pare-feu et sécurité système
  • SSH et accès distant sécurisé
  • Monitoring et logs système

Compétences Professionnelles​

  • Compréhension de l'écosystème Linux
  • Administration de serveurs en production
  • Résolution de problèmes système complexes
  • Collaboration avec les équipes IT/DevOps

Évaluations​

Travaux Pratiques (50%)​

  • TP1: Configuration et administration système (15%)
  • TP2: Scripting et automatisation (20%)
  • TP3: Projet serveur Linux complet (15%)

Laboratoires (30%)​

  • Labs hebdomadaires (25%)
  • Participation et engagement (5%)

Projet Final (20%)​

  • Serveur Linux configuré et sécurisé (15%)
  • Documentation et présentation (5%)

Total: 100%


Prérequis​

Connaissances Préalables​

  • Notions de base en informatique
  • Utilisation d'un ordinateur
  • Concepts de base des systèmes d'exploitation
  • Aucune connaissance préalable de Linux requise

Matériel Requis​

  • Ordinateur avec minimum 4 GB RAM (8 GB recommandé)
  • 20 GB d'espace disque libre
  • Connexion Internet stable
  • Processeur 64-bit

Logiciels à Installer​

  • Distribution Linux (Ubuntu, Debian, ou VM)
  • Terminal/SSH client
  • Éditeur de texte (VS Code, Vim, ou Nano)
  • Accès root ou sudo

Ressources du Cours​

Documentation Officielle​

Livres Recommandés​

  • "Linux Command Line and Shell Scripting Bible" - Richard Blum
  • "The Linux Command Line" - William Shotts
  • "Linux Administration Handbook" - Evi Nemeth

Communauté​


Progression du Cours​

[🔄 EN COURS] MODULE 1 - Introduction à Linux
[📝 À VENIR] MODULE 2 - Architecture du Système
[📝 À VENIR] MODULE 3 - Système de Fichiers
[📝 À VENIR] MODULE 4 - Gestion des Processus
[📝 À VENIR] MODULE 5 - Utilisateurs et Permissions
[📝 À VENIR] MODULE 6 - Scripting Shell
[📝 À VENIR] MODULE 7 - Réseau et Configuration
[📝 À VENIR] MODULE 8 - Services et Démon
[📝 À VENIR] MODULE 9 - Sécurité Système
[📝 À VENIR] MODULE 10 - Gestion des Paquets
[📝 À VENIR] MODULE 11 - Monitoring et Logs
[📝 À VENIR] MODULE 12 - Administration Avancée

Commencez Maintenant!​

Explorez les modules dans le menu latéral et commencez votre apprentissage de Linux!

Bon cours et bon apprentissage!


Dernière mise à jour: Décembre 2024