Aller au contenu

Notions fondamentales sur les Serveurs Linux

Cette page présente les notions fondamentales de Linux que tout administrateur système doit maîtriser. Nous aborderons l’architecture du système, la gestion des processus, des utilisateurs et du système de fichiers.

Linux est un système d’exploitation open source créé par Linus Torvalds en 1991. Il est basé sur Unix et constitue aujourd’hui le système le plus utilisé sur les serveurs dans le monde.

Open Source

Code source libre et gratuit, modifiable par tous.

Sécurisé

Architecture robuste avec gestion fine des permissions.

Stable

Conçu pour fonctionner 24/7 sans redémarrage.

Performant

Optimisé pour les charges serveur intensives.

DistributionUsage principalBase
Ubuntu ServerServeurs web, cloudDebian
DebianServeurs stables-
Rocky LinuxEntrepriseRHEL
AlpineConteneursmusl libc

Le système Linux est organisé en couches distinctes qui interagissent entre elles.

┌─────────────────────────────────────────────────────────────┐
│ Applications utilisateur │
├─────────────────────────────────────────────────────────────┤
│ Shell (Bash) │
├─────────────────────────────────────────────────────────────┤
│ Bibliothèques système (glibc, etc.) │
├─────────────────────────────────────────────────────────────┤
│ Appels système (syscalls) │
├─────────────────────────────────────────────────────────────┤
│ Kernel Linux │
├─────────────────────────────────────────────────────────────┤
│ Matériel (CPU, RAM, Disques) │
└─────────────────────────────────────────────────────────────┘
  1. Le Kernel (Noyau)

    Le cœur du système. Il gère :

    • La mémoire
    • Les processus
    • Les périphériques
    • Les systèmes de fichiers
  2. Le Shell

    L’interface entre l’utilisateur et le kernel. Le plus courant est Bash (Bourne Again Shell).

  3. Les bibliothèques système

    Fournissent des fonctions réutilisables aux applications (glibc, libssl, etc.).

  4. Les applications

    Les programmes que vous utilisez : serveurs web, bases de données, outils CLI.

Comprendre le boot Linux est essentiel pour diagnostiquer les problèmes de démarrage.

BIOS/UEFI → Bootloader (GRUB) → Kernel → systemd → Services

Systemd est le système d’init moderne utilisé par la plupart des distributions.

Fenêtre de terminal
# Voir l'état du démarrage
systemd-analyze
# Détail du temps de boot par service
systemd-analyze blame

Un processus est une instance d’un programme en cours d’exécution.

Fenêtre de terminal
# Lister tous les processus
ps aux
# Affichage interactif en temps réel
top
htop # Version améliorée (à installer)
# Rechercher un processus
pgrep nginx
ps aux | grep nginx
# Tuer un processus
kill <PID> # Signal SIGTERM (arrêt propre)
kill -9 <PID> # Signal SIGKILL (arrêt forcé)
killall nginx # Tuer par nom
ÉtatCodeDescription
RunningREn cours d’exécution
SleepingSEn attente d’un événement
StoppedTArrêté (Ctrl+Z)
ZombieZTerminé mais non récupéré par le parent

Les services (ou daemons) sont des processus qui s’exécutent en arrière-plan.

Fenêtre de terminal
# Démarrer un service
sudo systemctl start nginx
# Arrêter un service
sudo systemctl stop nginx
# Redémarrer un service
sudo systemctl restart nginx
# Recharger la configuration (sans interruption)
sudo systemctl reload nginx
# Activer au démarrage
sudo systemctl enable nginx
# Désactiver au démarrage
sudo systemctl disable nginx
# Voir le statut
sudo systemctl status nginx

Linux est un système multi-utilisateurs. Chaque utilisateur a des droits spécifiques.

root (UID 0)

Superutilisateur avec tous les droits. À utiliser avec précaution.

Utilisateurs système

Comptes pour les services (www-data, mysql, etc.). UID < 1000.

Utilisateurs normaux

Comptes humains avec UID ≥ 1000.

Fenêtre de terminal
# Créer un utilisateur
sudo useradd -m -s /bin/bash alice
# Définir un mot de passe
sudo passwd alice
# Ajouter à un groupe
sudo usermod -aG sudo alice
# Supprimer un utilisateur
sudo userdel -r alice # -r supprime aussi le home
# Lister les groupes d'un utilisateur
groups alice
id alice
FichierContenu
/etc/passwdListe des utilisateurs
/etc/shadowMots de passe chiffrés
/etc/groupListe des groupes
/etc/sudoersConfiguration sudo

Tout dans Linux est un fichier : documents, répertoires, périphériques, processus.

/
├── bin/ → Binaires essentiels (ls, cp, mv)
├── boot/ → Fichiers de démarrage (kernel, grub)
├── dev/ → Fichiers de périphériques
├── etc/ → Configuration système
├── home/ → Répertoires utilisateurs
├── lib/ → Bibliothèques partagées
├── media/ → Points de montage amovibles
├── mnt/ → Points de montage temporaires
├── opt/ → Logiciels optionnels
├── proc/ → Informations sur les processus (virtuel)
├── root/ → Home de root
├── run/ → Données runtime
├── sbin/ → Binaires système
├── srv/ → Données des services
├── sys/ → Informations sur le système (virtuel)
├── tmp/ → Fichiers temporaires
├── usr/ → Applications utilisateurs
└── var/ → Données variables (logs, cache, mail)

Chaque fichier a 3 types de permissions pour 3 catégories :

-rwxr-xr-- 1 alice developers 4096 Jan 1 12:00 script.sh
│└┬┘└┬┘└┬┘
│ │ │ └── Others (o) : r-- (lecture seule)
│ │ └───── Group (g) : r-x (lecture + exécution)
│ └──────── Owner (u) : rwx (tous les droits)
└────────── Type : - (fichier), d (dossier), l (lien)
Fenêtre de terminal
# Modifier les permissions
chmod 755 script.sh # rwxr-xr-x
chmod u+x script.sh # Ajouter exécution pour owner
chmod go-w fichier.txt # Retirer écriture pour group et others
# Modifier le propriétaire
chown alice:developers fichier.txt

Vous connaissez maintenant les bases fondamentales de Linux :

  • ✅ L’architecture en couches du système
  • ✅ Le processus de démarrage
  • ✅ La gestion des processus et services
  • ✅ La gestion des utilisateurs et groupes
  • ✅ Le système de fichiers et les permissions

Quelle distribution Linux choisir pour un serveur ?

Pour un serveur de production, privilégiez :

  • Debian ou Ubuntu LTS pour la stabilité et le support long terme
  • Rocky Linux ou AlmaLinux pour un environnement entreprise (remplaçants de CentOS)
  • Alpine pour les conteneurs (image légère)
Quelle est la différence entre sudo et su ?
  • sudo commande : exécute UNE commande en tant que root
  • su : change d’utilisateur (nécessite le mot de passe de l’utilisateur cible)
  • su - ou su - root : ouvre un shell root complet

Préférez sudo qui offre une meilleure traçabilité (logs) et ne nécessite pas de partager le mot de passe root.

Comment voir l’espace disque disponible ?
Fenêtre de terminal
# Espace disque par partition
df -h
# Taille des dossiers
du -sh /var/log/*
# Outil interactif
ncdu /
Comment trouver un fichier sur le système ?
Fenêtre de terminal
# Par nom
find / -name "nginx.conf"
# Par type
find /var -type f -name "*.log"
# Avec locate (plus rapide, utilise une base de données)
sudo updatedb # Mettre à jour la base
locate nginx.conf