Cette saison introduit l'environnement GNU/Linux, système d'exploitation incontournable pour les serveurs, le Cloud et la sécurité. Elle se concentre sur la compréhension de son architecture, de son histoire, et sur la maîtrise fondamentale de l'administration système via l'interface en ligne de commande.
🖥️ A501. Introduction à GNU/Linux
Ce cours pose les bases de l'environnement Linux, de ses origines historiques (Unix, GNU) à son architecture actuelle (distributions, système de fichiers), en passant par la philosophie du logiciel libre.
-
Un peu d'Histoire : De Multics à Linux
- Multics (1964) : Projet ambitieux (MIT, Bell Labs, GE) visant à créer un système en "temps partagé". Trop complexe et coûteux, il fut abandonné par les Bell Labs, mais a inspiré la suite.
- Unix (1969) : Créé par Ken Thompson et Dennis Ritchie (inventeur du langage C) sur un PDP-7. Philosophie KISS (Keep It Simple, Stupid) : faire une seule chose, mais la faire bien. Il devient portable grâce à sa réécriture en C.
- BSD (1977) : La Berkeley Software Distribution est une branche universitaire d'Unix, améliorée par Bill Joy (créateur de l'éditeur
vi). Elle a donné naissance aux systèmes modernes comme FreeBSD ou macOS. - GNU (1983) : Richard Stallman lance le projet GNU (GNU's Not Unix) avec pour but de créer un système d'exploitation entièrement libre. Il crée les outils essentiels (compilateur GCC, éditeur Emacs, shell Bash) et la licence GPL, mais il manque le cœur du système : le noyau.
- Minix (1987) : Système éducatif créé par Andrew Tanenbaum. C'est en l'utilisant que Linus Torvalds décidera de créer son propre noyau.
- Linux (1991) : Linus Torvalds développe un noyau (kernel) monolithique. En le combinant avec les outils du projet GNU, le système d'exploitation complet GNU/Linux est né.
-
Les Distributions Linux
- Définition : Linux est un noyau, pas un OS complet. Une distribution est un assemblage comprenant le noyau Linux, les outils GNU, un gestionnaire de paquets et souvent un environnement graphique.
- Grandes Familles : Elles se distinguent principalement par leur gestionnaire de paquets :
- Debian (et ses dérivés Ubuntu, Kali, Mint) : Utilise le format
.debet le gestionnaireapt. Très populaire et stable. - Red Hat (RHEL, Fedora, CentOS/Alma) : Utilise le format
.rpmet le gestionnairednf/yum. Standard dans le monde de l'entreprise. - Slackware : La plus ancienne encore active, philosophie minimaliste.
- Arch Linux : Modèle "Rolling release" (mise à jour continue), utilise
pacman. Pour utilisateurs avancés. - Android : Utilise le noyau Linux mais pas les outils GNU (remplacés par des bibliothèques Java/Google).
- Debian (et ses dérivés Ubuntu, Kali, Mint) : Utilise le format
-
Notions de Base
- CLI (Ligne de Commande) : Interface privilégiée sous Linux pour sa puissance et sa rapidité d'administration. Le Shell (souvent Bash) interprète les commandes saisies dans le terminal.
- Le Prompt : Invite de commande indiquant qui on est (
user), où on est (machine/dossier) et le niveau de privilège ($pour utilisateur,#pour root). - Système de Fichiers :
- Arborescence unique : Tout commence à la racine
/. Il n'y a pas de lettres de lecteur (C:, D:) comme sous Windows. - Tout est fichier : Documents, dossiers, mais aussi matériel (disque dur, souris), processus... tout est représenté sous forme de fichier.
- Sensible à la casse :
Fichier.txtetfichier.txtsont deux fichiers différents.
- Arborescence unique : Tout commence à la racine
- Dossiers Clés :
/home: Dossiers personnels des utilisateurs./root: Dossier personnel de l'administrateur./etc: Fichiers de configuration du système./bin&/usr/bin: Exécutables (programmes) essentiels./var: Données variables (logs, sites web, bases de données)./tmp: Fichiers temporaires (vidé à chaque redémarrage).
-
Commandes Linux essentielles
sudo: Super User DO, permet d'exécuter une commande avec les droits d'administrateur (root).apt: Advanced Packaging Tool, outil pour gérer les paquets (logiciels) : rechercher, mettre à jour, installer ou supprimer (ex:sudo apt update,sudo apt upgrade).ls: LiSt, liste les fichiers et dossiers présents dans le répertoire courant.cd: Change Directory, permet de changer de répertoire.pwd: Print Working Directory, affiche le chemin absolu du dossier dans lequel vous vous trouvez.man: MANual, affiche la documentation d'une commande (ex:man lspour voir les options de liste).mkdir: MaKe DIRectory, pour créer un dossier.touch: Permet de créer un fichier vide.rm: ReMove, pour supprimer un ou plusieurs fichiers.mv: MoVe, pour déplacer ou renommer des fichiers/dossiers.cat: Affiche le contenu d'un fichier dans la sortie standard (le terminal).
Challenge A501 : Installation d'une VM Linux sur VMware, et jeu Terminus Quest pour apprendre les commandes de base.
📚 Ressources :
Temps partagé https://fr.wikipedia.org/wiki/Temps_partag%C3%A9
Multitâche Préemptif https://fr.wikipedia.org/wiki/Multit%C3%A2che_pr%C3%A9emptif
Minix https://fr.wikipedia.org/wiki/Minix
Noyau OS https://fr.wikipedia.org/wiki/Noyau_de_syst%C3%A8me_d%27exploitation
Liste des distributions Linux https://upload.wikimedia.org/wikipedia/commons/9/96/Liste_des_distributions_Linux.svg
Cheatsheet Linux cmd cheatsheetlinux
Jeu Terminus https://luffah.xyz/bidules/Terminus/

🧱 A502. Composants d'un système GNU/Linux
Ce cours détaille l'anatomie d'un système Linux en passant en revue les différentes briques logicielles qui, assemblées autour du noyau, forment un système d'exploitation complet et fonctionnel.
- Chargeur d'amorçage
- Init : Gestionnaire de services
- Drivers : Pilotes de périphériques
- Shell
- Gestionnaire de paquets
- Éditeur de texte
- Serveur graphique
- Gestionnaire d'affichage
- Gestionnaire de fenêtres
- Environnement de bureau
- Bibliothèques d'interface graphique
- Explorateur de fichiers
- Outil de configuration réseau
- Serveur & sous-système audio
1. Les Fondations du Système (Bas niveau)
-
Le Chargeur d'amorçage (Bootloader) :
- Rôle : C'est le tout premier logiciel lancé au démarrage de la machine (par le BIOS ou l'UEFI). Il permet de choisir sur quel système d'exploitation démarrer (si vous avez un dual-boot Windows/Linux) et charge le noyau en mémoire.
- Exemple célèbre : GRUB (GRand Unified Bootloader).
-
Le Système d'Init (Gestionnaire de services) :
- Rôle : Une fois le noyau chargé,
initest le premier programme lancé (il porte le PID 1). Il est le "père" de tous les autres processus. Il est chargé de démarrer les services (réseau, son, cron, etc.). - Standard actuel : systemd. Bien que controversé pour sa complexité, il est aujourd'hui le standard sur la majorité des distributions. Il se gère avec la commande
systemctl.
- Rôle : Une fois le noyau chargé,
-
Pilotes de Périphériques (Drivers) :
- Rôle : Permettent au système de communiquer avec le matériel. Sous Linux, ils sont généralement intégrés directement au noyau sous forme de modules chargés dynamiquement.
2. Les Outils d'Administration
-
Le Shell (Interpréteur de commandes) :
- Rôle : C'est l'interface textuelle qui permet de dialoguer avec le système. Il interprète vos commandes et lance les programmes.
- Les stars :
- Bash : Le standard historique, présent presque partout.
- Zsh : Très populaire et moderne (par défaut sur macOS), souvent utilisé avec des plugins pour l'autocomplétion.
-
Le Gestionnaire de Paquets :
- Rôle : Il automatise l'installation, la mise à jour et la suppression des logiciels. Contrairement à Windows où l'on télécharge des
.exemanuellement, ici on demande au gestionnaire de récupérer le logiciel et toutes ses dépendances (les bibliothèques nécessaires) depuis un dépôt sécurisé. - Exemples : apt (Debian/Ubuntu), dnf/rpm (Red Hat), pacman (Arch).
- Rôle : Il automatise l'installation, la mise à jour et la suppression des logiciels. Contrairement à Windows où l'on télécharge des
-
Éditeur de texte :
- Rôle : Indispensable pour modifier les fichiers de configuration.
- Les incontournables : Nano (simple pour débuter), Vim (puissant mais nécessite un apprentissage), Emacs.
3. L'Interface Graphique (La couche visible)
C'est là que Linux diffère le plus de Windows/macOS, car l'interface graphique est une "pile" de plusieurs logiciels distincts :
-
Serveur Graphique :
- C'est la fondation qui permet de dessiner des fenêtres et de gérer la souris/clavier. C’est un composant technique, invisible pour l’utilisateur.
- X11 (X.Org) : Le standard historique (depuis 1987), robuste mais vieillissant.
- Wayland : Le remplaçant moderne, plus sécurisé et performant, mais qui nécessite que les applications soient adaptées.
-
Gestionnaire d'Affichage (Display Manager) :
- C'est simplement votre écran de connexion (Login screen). Il lance le serveur graphique et vous demande votre mot de passe.
-
Gestionnaire de Fenêtres (Window Manager - WM) :
- Il s'occupe uniquement de "décorer" et placer les fenêtres (bordures, réduction, déplacement). Il peut être utilisé seul (pour les configurations minimalistes comme i3 ou Openbox).
-
Environnement de Bureau (Desktop Environment - DE) :
- C'est une suite complète qui inclut un Gestionnaire de Fenêtres + un Explorateur de fichiers + des applications (calculatrice, paramètres, terminal) + une barre des tâches. C'est ce qui donne l'apparence globale (le "look & feel").
- Exemples :
- GNOME : Moderne, épuré (utilisé par Ubuntu, Fedora).
- KDE Plasma : Très personnalisable, ressemble un peu à Windows.
- XFCE : Léger et performant pour les vieux PC.
-
Bibliothèques Graphiques :
- Ce sont les "boîtes à outils" utilisées par les développeurs pour créer les boutons et menus. GTK est utilisé par GNOME, Qt est utilisé par KDE.
4. Les Outils Complémentaires
-
Bibliothèques d'interface graphique :
- Rôle : Ce sont des ensembles de code (librairies) qui fournissent aux développeurs les "briques visuelles" prêtes à l'emploi (boutons, menus, fenêtres) pour créer des logiciels.
- Les principales : GTK (utilisée par les environnements GNOME, XFCE, Mate) et Qt (utilisée par KDE Plasma, LXQt).
-
Explorateur de fichiers :
- Rôle : L'équivalent de l'Explorateur Windows ou du Finder macOS, il permet de naviguer graphiquement dans l'arborescence.
- Exemples Graphiques (GUI) : Nautilus (Gnome), Dolphin (KDE), Thunar (léger, souvent avec XFCE).
- Exemples Ligne de commande (CLI) : Ranger ou Midnight Commander (pour naviguer efficacement dans les dossiers sans souris).
-
Outil de configuration réseau :
- Rôle : Permet de gérer les interfaces réseau (IP statique, DHCP, DNS). La méthode varie beaucoup selon la distribution.
- Exemple : Netplan est l'outil standard utilisé sur Ubuntu pour configurer le réseau via des fichiers YAML.
-
Serveur & sous-système audio :
- Rôle : C'est la couche logicielle qui gère la carte son et permet à plusieurs applications de jouer du son en même temps (mixage).
- Contexte : Bien que le support soit bref à ce sujet, on retient souvent PulseAudio (créé par le même auteur que systemd) ou plus récemment PipeWire comme standards actuels.
Challenge A502 : Jouer à VIM Adventures et VIM Tutor pour se familiariser avec VIM.
📚 Ressources :
Shebang https://fr.wikipedia.org/wiki/Shebang
Ajouter chemin au Path https://www.malekal.com/ajouter-chemin-path-linux/
Bootloaders https://wiki.archlinux.org/title/Arch_boot_process#Feature_comparison
X window System https://fr.wikipedia.org/wiki/X_Window_System
Le Display manager https://wiki.archlinux.org/title/Display_manager
Métaphore du Bureau https://fr.wikipedia.org/wiki/Environnement_de_bureau#M%C3%A9taphore_du_bureau
Qt https://www.d-booker.fr/content/43-qt-une-bibliotheque-dediee-au-developement-multiplate-forme
Netplan https://doc.ubuntu-fr.org/netplan
Son https://doc.ubuntu-fr.org/utilisateurs/darkjam/son
Learn VIM via Game https://vim-adventures.com/ ou
vimtutor
🔐 A503. Utilisateurs, Groupes, Permissions & Sudo
Ce cours aborde la gestion des comptes utilisateurs, l'organisation en groupes, et la sécurité du système de fichiers via les permissions. Il détaille également l'utilisation de
sudopour l'élévation de privilèges.
Gestion des Utilisateurs
Les utilisateurs sont identifiés par un UID (User ID) et un GID (Group ID) principal.
-
Fichiers de configuration :
/etc/passwd: Liste les comptes utilisateurs.- Format :
user:x:UID:GID:Commentaire:/home/user:/bin/bash.
- Format :
/etc/shadow: Stocke les mots de passe chiffrés et les règles d'expiration (accessible uniquement par root).
-
Commandes principales :
- Créer :
useraddsudo useradd -m -s /bin/bash -c "Jean Dupont" jean.-m: Crée le dossier personnel (/home/user).-s: Définit le shell par défaut (ex:/bin/bash).-c: Ajoute un commentaire (Nom complet, GECOS).-u/-g: Imposer un UID ou un GID spécifique.
- Modifier :
usermodsudo usermod -s /bin/zsh jean: Change le shell.sudo usermod -l nouveau_nom ancien_nom: Renomme le compte.sudo usermod -L jean/-U jean: Verrouille / Déverrouille le compte.sudo usermod -d /home/new -m jean: Change le dossier home et déplace les fichiers existants.
- Supprimer :
userdelsudo userdel -r jean: Supprime l'utilisateur et son dossier personnel (-r).
- Mot de passe :
passwd jeanpour définir/changer le mot de passe.
- Créer :
Gestion des Groupes
Les groupes permettent de rassembler des utilisateurs pour simplifier la gestion des droits. Un utilisateur a un groupe primaire et peut avoir plusieurs groupes secondaires.
-
Fichier de configuration :
/etc/group: Liste les groupes et leurs membres secondaires.
-
Commandes principales :
- Créer :
groupaddsudo groupadd reseau.-g: Imposer un GID spécifique.
- Supprimer :
groupdel nom_groupe. - Gérer les membres :
sudo usermod -aG sudo,reseau jean: Ajoute (-a) l'utilisateur aux groupes secondaires (-G) spécifiés.sudo gpasswd --delete jean reseau: Retire un utilisateur d'un groupe.sudo usermod -g devops jean: Change le groupe primaire de l'utilisateur.groups jean: Affiche dans quel groupes est l'utilisateur jean.
- Créer :
Permissions et Propriétaires
Chaque fichier/dossier appartient à un Propriétaire (u) et un Groupe propriétaire (g). Les permissions sont définies pour eux et pour les Autres (o).
-
Visualiser :
ls -laffiche les permissions (ex:-rw-r--r--).- 1er caractère : Type (
-fichier,ddossier,llien). - Suivants : 3 blocs de droits
rwx(User, Group, Others).
- 1er caractère : Type (
-
Signification des droits :
r(Read) : Lire le fichier / Lister le dossier.w(Write) : Modifier le fichier / Créer ou supprimer dans le dossier.x(Execute) : Exécuter le fichier (script/programme) / Traverser le dossier (indispensable pour y accéder).
-
Changer le propriétaire :
chown(Change Owner)sudo chown user:group fichier: Change le propriétaire et le groupe.sudo chown -R user:group dossier/: Applique récursivement au dossier et son contenu (-R).
-
Changer les permissions :
chmod(Change Mode)- Méthode Symbolique (
u/g/o++/-/=+r/w/x) :chmod u+x script.sh: Ajoute l'exécution pour le propriétaire.chmod o-w file: Retire l'écriture aux autres.
- Méthode Octale (r=4, w=2, x=1) :
-
7(4+2+1) :rwx(Lecture, écriture, exécution). -
6(4+2) :rw-(Lecture, écriture). -
5(4+1) :r-x(Lecture, exécution). -
chmod 644 fichier: rw- (proprio), r-- (groupe), r-- (autres). -
chmod 755 dossier: rwx (proprio), r-x (groupe), r-x (autres).
-
- Méthode Symbolique (
Sudo (SuperUser DO)
sudo permet à un utilisateur autorisé d'exécuter des commandes en tant qu'administrateur (root) ou un autre utilisateur, sans se connecter directement en root.
-
Configuration :
- Fichier principal :
/etc/sudoers. - Dossier pour ajouts :
/etc/sudoers.d/. - Outil obligatoire : Toujours utiliser
sudo visudopour éditer la configuration (vérifie la syntaxe avant d'enregistrer pour éviter de casser le système).
- Fichier principal :
-
Syntaxe d'une règle sudo :
QUI OÙ=(EN_TANT_QUE) QUOI- Exemple :
%sudo ALL=(ALL:ALL) ALL(Le groupe sudo peut tout faire, partout, en tant que n'importe qui). - Exemple ciblé :
jean ALL=(root) /usr/bin/systemctl restart nginx(Jean peut seulement redémarrer Nginx en tant que root).
- Exemple :
-
Commandes utiles :
sudo -l: Liste les droits sudo de l'utilisateur courant.sudo -iousudo -s: Ouvre un shell root interactif (à éviter pour des tâches ponctuelles).
Challenge A503 : sur Rocky Linux, création d'utilisateur, droits et dossiers.
📚 Ressources :
Gestion des groupes sous Linux https://www.it-connect.fr/la-gestion-des-groupes-sous-linux/
📦 A504. Gestion des Paquets, Compilation & Logs
Ce cours couvre la gestion du cycle de vie des logiciels sous Linux (installation via paquets ou compilation) ainsi que la surveillance du système (logs et ressources matérielles).
1. Gestion des Paquets
Un gestionnaire de paquets automatise l'installation, la mise à jour et la suppression de logiciels. Il gère les dépendances (bibliothèques nécessaires au fonctionnement d'un programme) et vérifie l'intégrité des fichiers via des dépôts officiels.
Il existe toujours une distinction entre l'outil bas niveau (gère le fichier paquet local) et l'outil haut niveau (gère les dépôts et les dépendances).
A. Debian / Ubuntu (et dérivés)
- Outils :
dpkg(bas niveau) etapt(haut niveau). - Fichiers de config :
/etc/apt/sources.list.
| Action | Commande apt (Recommandé) |
|---|---|
| Rafraîchir la liste des dépôts | sudo apt update |
| Mettre à jour les paquets | sudo apt upgrade |
| Installer un paquet | sudo apt install <nom> |
| Désinstaller un paquet | sudo apt remove <nom> |
| Rechercher un paquet | sudo apt search <nom> |
Installer un fichier .deb local | sudo dpkg -i fichier.deb |
B. Arch Linux / Manjaro
- Outil :
pacman(gère tout : synchro, install, cache). - Fichiers de config :
/etc/pacman.conf.
| Action | Commande pacman |
|---|---|
| Mettre à jour tout le système | sudo pacman -Syu |
| Installer un paquet | sudo pacman -S <nom> |
| Rechercher un paquet | sudo pacman -Ss <nom> |
| Désinstaller (+ dépendances inutiles) | sudo pacman -Rns <nom> |
C. Red Hat / Fedora / CentOS
- Outils :
rpm(bas niveau) etdnf(haut niveau, remplace yum). - Fichiers de config :
/etc/yum.repos.d/.
| Action | Commande dnf |
|---|---|
| Vérifier les mises à jour | sudo dnf check-update |
| Mettre à jour le système | sudo dnf upgrade |
| Installer un paquet | sudo dnf install <nom> |
Installer un fichier .rpm local | sudo rpm -ivh fichier.rpm |
2. Compiler un programme (Depuis les sources)
Parfois nécessaire pour avoir une version très récente, activer des options spécifiques ou être sûr que le programme n'a pas été altéré.
- Prérequis : Il faut les outils de développement (compilateur
gcc,make, etc.).- Debian/Ubuntu :
sudo apt install build-essential. - RHEL :
sudo dnf groupinstall "Development Tools".
- Debian/Ubuntu :
Workflow classique (La trinité de la compilation) :
- Extraction :
tar xf logiciel.tar.gzpuiscd logiciel. - Configuration :
./configure(Vérifie les prérequis et prépare la compilation. On peut ajouter--prefix=/usr/localpour choisir le dossier d'install). - Compilation :
make(Transforme le code source en binaire. Option-j$(nproc)pour aller plus vite). - Installation :
sudo make install(Copie les binaires dans le système).
3. Journaux du Système (Logs)
Les logs sont essentiels pour le dépannage. Ils sont soit centralisés par systemd (binaire), soit stockés dans des fichiers texte.
A. Fichiers logs classiques (/var/log/)
On les lit avec cat, less ou tail.
/var/log/syslogou/var/log/messages: Logs généraux./var/log/auth.log: Logs d'authentification (sudo, ssh, login)./var/log/dmesg: Messages du noyau au démarrage.
B. Journald (systemd)
Commande unique : journalctl.
journalctl -f: Suivre les logs en direct (équivalent à tail -f).journalctl -xe: Voir les dernières erreurs détaillées.journalctl -u ssh: Voir les logs d'un service précis (ici ssh).journalctl -k: Messages du noyau (kernel).journalctl --since "10 min ago": Logs des 10 dernières minutes.
4. Périphériques, Hardware & Surveillance
Pour surveiller les ressources et identifier le matériel.
Surveillance des ressources
- CPU / RAM :
topouhtop(vue temps réel). - Mémoire :
free -h(affiche la RAM libre/utilisée). - Disques :
df -h: Affiche l'espace disque occupé/libre (-h = human readable, lisible par l'homme en Go/Mo).lsblk: Affiche l'arborescence des partitions.
Identification Matériel
lspci: Liste les périphériques PCI (cartes graphiques, réseau...).lsusb: Liste les périphériques USB.dmesg: Affiche les messages du noyau (très utile pour voir si un périphérique est détecté au branchement)./dev/: Dossier contenant les fichiers représentant le matériel (ex:/dev/sdapour un disque).
⌨️ Récapitulatif des commandes
Voici les commandes essentielles à retenir pour ce module :
-
Infos utilisateur & commandes
whoami: Affiche le nom de l'utilisateur courant.which <commande>: Affiche le chemin complet de l'exécutable d'une commande (ex:which python).man <commande>: Affiche le manuel d'utilisation.
-
Paquets
sudo apt update && sudo apt upgrade: Mettre à jour (Debian/Ubuntu).sudo apt install <paquet>: Installer.
-
Disques & Fichiers
df -h: Espace disque libre (en format lisible).lsblk: Liste des blocs/partitions.
-
Logs
tail -f /var/log/syslog: Suivre les logs en continu.journalctl -xe: Debugger une erreur récente systemd.
Challenge A504 : Compiler un Binaire.
📚 Ressources :
Cheatsheet Linux https://cheatography.com/davechild/cheat-sheets/linux-command-line/
🪔 A505. Atelier LAMP
Dans cet atelier, vous allez découvrir comment installer et configurer les différents logiciels nécessaire à la mise en place d'une stack LAMP. LAMP pour Linux, Apache, MySQL et PHP : ce sont les briques de bases nécessaires pour un serveur web hébergeant des applications web codées en PHP !

Atelier A505 : Atelier mise en place d'une stack LAMP.
📚 Ressources :
- GLPI 11 sur Debian 13 https://www.it-connect.fr/installation-pas-a-pas-de-glpi-10-sur-debian-12/
- Apache config https://glpi-install.readthedocs.io/en/latest/prerequisites.html#apache-configuration
- Apache Virtual Hosts https://www.linuxtricks.fr/wiki/apache-les-virtual-hosts
📁 A506. Atelier SAMBA
L'intéret d'utiliser un serveur Linux à la place d'un Windows Server avec Active Directory ? On économise le coût des licences ! Pas besoin de CAL pour nos postes/utilisateurs. Pour remplacer Active Directory sur GNU/Linux, il existe plusieurs solutions. L'une des plus populaires est le logiciel Samba.

Atelier A506 : Atelier mise en place de SAMBA (AD)
📚 Ressources :
- Installer et configurer SAMBA https://www.it-connect.fr/serveur-de-fichiers-debian-installer-et-configurer-samba-4/
- Lier un lecteur réseau avec une GPO https://activedirectorypro.com/map-network-drives-with-group-policy/
- Samba et Systemd https://wiki.samba.org/index.php/Managing_the_Samba_AD_DC_Service_Using_Systemd
🐧 A507. Arch Linux
Ce cours introduit Arch Linux, une distribution indépendante connue pour sa philosophie minimaliste, son modèle de mise à jour continue (Rolling Release) et sa gestion de paquets communautaire (AUR). C'est le système idéal pour comprendre en profondeur le fonctionnement de Linux.
1. Philosophie & Concepts Clés
Contrairement à Debian (stabilité avant tout) ou Ubuntu (facilité d'utilisation), Arch Linux repose sur des principes différents :
-
KISS (Keep It Simple, Stupid) :
-
Le système est conçu pour être simple techniquement (pas de surcouche inutile, pas de patchs complexes), mais pas forcément simple à utiliser pour un débutant.
-
L'utilisateur a le contrôle total : rien n'est installé par défaut sans que vous l'ayez décidé.
-
Rolling Release (Publication Continue) :
-
Il n'y a pas de versions majeures (pas de "Arch 22.04" ou "Arch 11").
-
Vous installez le système une seule fois, et vous le mettez à jour continuellement. Vous aurez toujours la toute dernière version des logiciels (noyau, drivers, applications) quelques jours après leur sortie.
-
Avantage : Toujours à jour ("Bleeding Edge").
-
Inconvénient : Risque d'instabilité si une mise à jour casse une configuration (nécessite de lire les news du site officiel).
-
DIY (Do It Yourself) :
-
Après l'installation, vous vous retrouvez avec un écran noir et un curseur clignotant. C'est à vous d'installer l'interface graphique, le son, le réseau, etc..
2. Gestion des Paquets : Pacman & AUR
Arch Linux utilise un gestionnaire de paquets très rapide et une communauté immense.
-
Pacman (Package Manager) :
-
C'est l'équivalent de
aptoudnf. Il gère les dépôts officiels (Core, Extra). -
Il utilise des fichiers binaires
.pkg.tar.zst. -
AUR (Arch User Repository) :
-
C'est la grande force d'Arch. Si un logiciel n'est pas dans les dépôts officiels (ex: Google Chrome, Spotify, ou un petit outil obscur), il est à 99% dans AUR.
-
C'est un dépôt communautaire contenant des scripts (
PKGBUILD) qui téléchargent les sources et compilent le logiciel pour vous. -
Pour l'utiliser facilement, on installe un "AUR Helper" comme
yayouparu(non installés par défaut).
3. Anatomie de l'Installation
L'installation classique se fait en ligne de commande. Voici les étapes logiques :
- Clavier & Réseau : Mettre le clavier en FR (
loadkeys fr) et vérifier la connexion internet (indispensable car l'installateur télécharge tout en direct). - Partitionnement : Utiliser
cfdiskoufdiskpour créer les partitions (EFI, Root, Swap). - Formatage & Montage :
- Formater les partitions (
mkfs.ext4,mkswap). - Monter la partition Root dans
/mnt(le système temporaire).
- Installation du système de base : La commande magique est
pacstrap.
- Exemple :
pacstrap /mnt base linux linux-firmware vim.
- Configuration du système (Chroot) :
- Générer le fichier fstab (
genfstab). - Entrer dans le nouveau système (
arch-chroot /mnt) pour devenir "root" à l'intérieur de votre nouvelle installation. - Configurer la langue, l'heure, le nom de la machine et le mot de passe root.
- Bootloader : Installer et configurer GRUB pour que le PC puisse démarrer.
Note : Il existe désormais un script officiel nommé
archinstallqui automatise tout cela via des menus, mais savoir le faire à la main est un excellent exercice pédagogique.
⌨️ Commandes Essentielles (Pacman)
Voici les équivalences pour vous repérer par rapport à Debian/Ubuntu :
| Action | Commande Arch (pacman) | Équivalent Debian (apt) |
|---|---|---|
| Mettre à jour tout le système | sudo pacman -Syu | apt update && apt upgrade |
| Installer un paquet | sudo pacman -S <nom> | apt install <nom> |
| Chercher un paquet | pacman -Ss <mot> | apt search <mot> |
| Supprimer un paquet | sudo pacman -Rs <nom> | apt autoremove <nom> |
| Nettoyer le cache | sudo pacman -Sc | apt clean |
Challenge A507 : Installation et test d'Arch Linux.
📚 Ressources :
- Les liens symboliques https://www.it-connect.fr/creer-un-lien-symbolique-sous-linux/
- L'umask sous Linux https://www.it-connect.fr/gestion-de-lumask-sous-linux/
- Install Arch https://wiki.archlinux.org/title/Installation_guide
📞 A508. Introduction à la VoIP et Asterisk
Ce cours marque la transition de la téléphonie traditionnelle vers la téléphonie moderne sur IP. Il aborde l'évolution des réseaux, les protocoles de communication et la mise en place d'un standard téléphonique logiciel (IPBX) avec Asterisk.
1. L'Évolution des Réseaux Téléphoniques
Avant la VoIP, la téléphonie reposait sur la commutation de circuits (une ligne physique est réservée entre deux interlocuteurs pendant toute la durée de l'appel).
-
RTC (Réseau Téléphonique Commuté) :
- Aussi appelé PSTN (Public Switched Telephone Network).
- C'est le réseau analogique historique (la prise en T murale).
- Technologie : Commutation de circuits.
- Inconvénient : Coûteux, peu flexible, une ligne = un appel.
-
RNIS (Réseau Numérique à Intégration de Services) :
- Aussi appelé ISDN (Integrated Services Digital Network) ou Numéris en France.
- C'est une évolution du RTC permettant de transporter de la voix et des données en numérique sur les lignes téléphoniques classiques.
- Avantage : Qualité supérieure, plusieurs appels simultanés sur une même ligne physique (canaux B).
-
VoIP (Voice over IP) :
- C'est la technologie actuelle. La voix est numérisée, compressée et découpée en paquets de données (comme pour un email ou une page web).
- Elle transite par le réseau Internet ou un réseau local (LAN).
- Avantages : Réduction des coûts (pas de câblage téléphonique dédié), mobilité, intégration avec l'informatique.
2. PABX vs IPBX
C'est le cœur du système téléphonique d'une entreprise (le standard).
-
PABX (Private Automatic Branch Exchange) :
- L'ancien standard téléphonique "physique".
- Gère les lignes internes et l'accès au réseau public (RTC/RNIS).
- Nécessite souvent un câblage téléphonique séparé du réseau informatique.
-
IPBX (Internet Protocol Private Branch Exchange) :
- C'est la version moderne, souvent logicielle (comme Asterisk).
- Il gère les téléphones IP via le réseau informatique existant (câbles Ethernet RJ45).
- Il offre des fonctionnalités avancées : messagerie unifiée, conférences, serveur vocal interactif (IVR) .
3. Les Protocoles VoIP
Pour téléphoner sur Internet, on a besoin de deux choses : un protocole pour établir la connexion (signalisation) et un protocole pour transporter la voix.
-
SIP (Session Initiation Protocol) :
- C'est le standard mondial (RFC 3261) pour la signalisation.
- Rôle : Il ne transporte pas la voix ! Il sert à initier (faire sonner), modifier (mettre en attente) et terminer (raccrocher) les sessions multimédia .
- Fonctionnement : Architecture Client-Serveur (similaire au HTTP du web).
-
Autres protocoles :
- RTP (Real-time Transport Protocol) : C'est lui qui transporte réellement la voix (le flux audio) une fois que SIP a établi la connexion.
- IAX (Inter-Asterisk eXchange) : Protocole spécifique à Asterisk, plus efficace pour relier deux serveurs Asterisk entre eux.
- H.323 : Ancien standard, plus complexe, aujourd'hui supplanté par SIP.
4. Architecture Technique et Qualité
Pour qu'un appel VoIP fonctionne correctement, le protocole SIP ne suffit pas. Il faut une infrastructure matérielle et une gestion fine du réseau.
-
Composants SIP :
- User Agent (UA) : Le téléphone (physique ou logiciel) utilisé par le client.
- Proxy SIP : Serveur qui achemine les requêtes d'un utilisateur à l'autre (le "facteur").
- Registrar : Serveur de base de données qui note où se trouve chaque utilisateur (son adresse IP) quand il s'enregistre.
- Gateway (Passerelle) : L'équipement indispensable pour sortir vers le réseau classique (appeler un fixe ou un mobile via le RTC).
-
Numérisation et Codecs :
- Le Codec (Coder-Decoder) transforme la voix analogique en données numériques compressées.
- G.711 : Qualité standard (HD), aucune compression, consomme 64 kbps.
- G.729 : Forte compression, qualité légèrement dégradée, idéal pour petits débits (8 kbps).
-
Qualité de Service (QoS) :
- La VoIP est du temps réel : on ne peut pas mettre la voix en "pause" le temps que le réseau charge. Il faut configurer la QoS sur les routeurs pour prioriser la voix sur les téléchargements.
- Les 4 critères vitaux :
- Bande passante : Le débit doit être suffisant.
- Latence : Le délai doit être faible (< 150ms) pour éviter l'effet "écho".
- Gigue (Jitter) : La variation du délai (le pire ennemi de la VoIP).
- Perte de paquets : Entraîne des coupures de son (hachures).
5. Zoom sur Asterisk
Asterisk est la solution de référence pour créer son propre IPBX.
-
Définition : C'est une plateforme Open Source (créée en 1999 par Mark Spencer) qui transforme un ordinateur en serveur de communication complet .
-
Fonctionnalités : Il agit comme un PBX, une passerelle VoIP, un serveur de conférence et un serveur vocal (IVR) .
Architecture et Dialplan L'intelligence d'Asterisk réside dans son Dialplan (Plan de numérotation). C'est le cerveau qui décide "qui appelle qui" et "que faire quand ça sonne" .
-
Fichier de configuration : Le dialplan se configure dans le fichier
/etc/asterisk/extensions.conf. -
Structure d'une règle (Dialplan) : Une règle se compose de 4 éléments :
- Contexte (
[internal]) : Groupe logique (ex: appels internes vs appels externes). - Extension (
100) : Le numéro appelé. - Priorité (
1,2,n) : L'ordre d'exécution des étapes. - Application (
Dial,Answer) : L'action à effectuer.
- Contexte (
-
Exemple de syntaxe :
[internal] ; Nom du contexte
exten => 100,1,Answer() ; Étape 1 : Si on appelle le 100, Asterisk décroche
exten => 100,2,Playback(hello-world) ; Étape 2 : Il joue le son "hello-world"
exten => 100,3,Hangup() ; Étape 3 : Il raccroche
Terminologie importante :
- Softphone : Logiciel installé sur PC ou Smartphone qui simule un téléphone (ex: Zoiper, Linphone).
- Trunk SIP : Le "tuyau" qui relie votre IPBX Asterisk au monde extérieur (via un opérateur VoIP) pour passer des appels sur les fixes/mobiles.
Challenge A508 : Installer et configurer un serveur Asterisk.
📚 Ressources :
- Code Chappe https://fr.wikipedia.org/wiki/Code_Chappe
- Qu'est-ce que la VoIP https://www.it-connect.fr/quest-ce-que-la-voip/
- Qu'est-ce qu'un PBX https://www.cisco.com/c/fr_ca/solutions/small-business/resource-center/collaboration/what-is-a-pbx.html
- Installing Asterisk https://docs.asterisk.org/Getting-Started/Installing-Asterisk/
- Ubuntu Asterisk https://doc.ubuntu-fr.org/asterisk
- Debian Asterisk https://doc.clementperrin.fr/application/asterisk/installation-asterisk-18-debian
☎️ A509. Atelier Asterisk
IPBX Asterisk sur Debian 13
Challenge A509 : Atelier Installer et configurer un serveur Asterisk sur proxmox, fonctionnel via app VOIP du smartphone.
📚 Ressources :