CLinux
15/06/2026
Introduction
Commande rapide utile
- Si jamais tu te trouve en clavier étranger, pour passer en clavier francais rapidement:
setxkbmap fr
Présentation des systèmes d'exploitation
Mode utilisateur et mode noyau
Appels système
Le Shell et les commandes de base
- GNU/Linux - Introduction et commandes de base
Introduction
Présentation du système GNU/Linux
GNU/Linux est un système d'exploitation multi-utilisateur et multitâche inspiré d'UNIX.
Il est constitué :
- du noyau Linux ;
- des outils GNU ;
- d'un ensemble de programmes système ;
- d'interfaces utilisateur en mode texte ou graphique.
Les principales caractéristiques de GNU/Linux sont :
- Multi-utilisateur
- Multitâche
- Portable
- Stable
- Sécurisé
- Open Source
Architecture du système
Le système est composé de deux parties principales :
Le noyau (Kernel)
Le noyau est la partie centrale du système.
Il assure notamment :
- la gestion de la mémoire ;
- la gestion des processus ;
- la gestion des périphériques ;
- la gestion du système de fichiers ;
- les communications entre programmes.
Les programmes utilisateurs
Les applications fonctionnent en mode utilisateur.
Elles ne peuvent pas accéder directement :
- à la mémoire physique ;
- aux périphériques ;
- aux instructions privilégiées du processeur.
Les demandes au noyau sont effectuées par l'intermédiaire des appels système.
Modes d'exécution
Mode noyau
Le processeur exécute le code du noyau avec tous les privilèges.
Le noyau peut :
- accéder à toute la mémoire ;
- gérer les périphériques ;
- manipuler les interruptions matérielles ;
- contrôler les ressources système.
Mode utilisateur
Les programmes utilisateurs s'exécutent avec des privilèges limités.
Ils ne peuvent accéder qu'aux ressources autorisées.
Lorsqu'une ressource système est nécessaire, ils utilisent un appel système.
Le Shell
Définition
Le shell est l'interpréteur de commandes du système.
Il sert d'interface entre :
- l'utilisateur ;
- le système d'exploitation.
Sous GNU/Linux, le shell le plus répandu est :
bash
Invite de commande
Exemple :
[root@serveur /root]#
Signification :
| Élément | Description |
|---|---|
| root | Utilisateur connecté |
| serveur | Nom de la machine |
| /root | Répertoire courant |
| # | Utilisateur administrateur |
Exemple utilisateur standard :
[max@poste /home/max]$
Le symbole `$` indique un utilisateur standard.
Erreurs de commande
Exemple :
abcde
Résultat :
bash: abcde: command not found
Cela signifie que la commande n'existe pas ou n'est pas accessible.
Commandes de base
Lister les fichiers
ls
Affiche le contenu du répertoire courant.
ls
Affichage détaillé :
ls -l
Affichage des fichiers cachés :
ls -la
Afficher le contenu d'un fichier
more
Lecture page par page.
more fichier.txt
Commandes utiles :
| Touche | Action |
|---|---|
| Entrée | Ligne suivante |
| Espace | Page suivante |
| b | Page précédente |
| q | Quitter |
cat
Affiche l'intégralité d'un fichier.
cat fichier.txt
Afficher plusieurs fichiers :
cat fichier1.txt fichier2.txt
Copier des fichiers
cp
Copier un fichier :
cp source.txt destination.txt
Copie d'un répertoire :
cp -r dossier1 dossier2
Déplacer ou renommer
mv
Renommer :
mv ancien.txt nouveau.txt
Déplacer :
mv fichier.txt /home/user/
Supprimer
rm
Supprimer un fichier :
rm fichier.txt
Supprimer un répertoire :
rm -r dossier
Suppression forcée :
rm -rf dossier
Rechercher des fichiers
find
Recherche dans une arborescence :
find /home -name compta.txt
Recherche de tous les fichiers PDF :
find /home -name "*.pdf"
Rechercher du texte
grep
Recherche une chaîne dans un fichier.
grep "client" compta.txt
Recherche récursive :
grep -r "erreur" /var/log
Changer de répertoire
cd
Répertoire personnel :
cd
Répertoire spécifique :
cd /home/max
Remonter d'un niveau :
cd ..
Afficher le répertoire courant
pwd
pwd
Exemple :
/home/max/documents
Créer un répertoire
mkdir
mkdir projet
Créer plusieurs répertoires :
mkdir docs images sauvegardes
Supprimer un répertoire
rmdir
Supprime un répertoire vide.
rmdir projet
Gestion de l'espace disque
df
Affiche l'espace disque disponible.
df -h
du
Affiche l'espace utilisé.
du -sh dossier
Compression et archivage
gzip
Compression :
gzip fichier.log
Décompression :
gzip -d fichier.log.gz
tar
Créer une archive :
tar -cvf archive.tar dossier/
Créer une archive compressée :
tar -czvf archive.tar.gz dossier/
Extraire une archive :
tar -xvf archive.tar
Extraire une archive compressée :
tar -xzvf archive.tar.gz
Lister le contenu :
tar -tvf archive.tar
Gestion des processus
kill
Terminer un processus.
kill PID
Exemple :
kill 1254
Obtenir de l'aide
man
Afficher le manuel d'une commande.
man ls
Exemple :
man tar
help
Aide intégrée du shell :
help cd
Résumé des commandes essentielles
| Commande | Fonction |
|---|---|
| ls | Lister les fichiers |
| cd | Changer de répertoire |
| pwd | Afficher le répertoire courant |
| cp | Copier |
| mv | Déplacer / renommer |
| rm | Supprimer |
| mkdir | Créer un répertoire |
| rmdir | Supprimer un répertoire vide |
| cat | Afficher un fichier |
| more | Lecture paginée |
| grep | Recherche de texte |
| find | Recherche de fichiers |
| gzip | Compression |
| tar | Archivage |
| df | Espace disque disponible |
| du | Espace disque utilisé |
| kill | Arrêt d'un processus |
| man | Documentation |
Gestion des utilisateurs
- Gestion des utilisateurs et des groupes
Introduction
GNU/Linux est un système multi-utilisateur.
Chaque utilisateur dispose :
- d'un identifiant unique (UID) ;
- d'un groupe principal (GID) ;
- d'un répertoire personnel ;
- d'un shell de connexion ;
- de permissions d'accès aux ressources du système.
Les utilisateurs peuvent représenter :
- des personnes physiques ;
- des services système ;
- des applications ;
- des processus automatisés.
Concepts fondamentaux
Utilisateur
Un utilisateur est une identité reconnue par le système.
Chaque utilisateur possède :
| Élément | Description |
|---|---|
| Login | Nom de connexion |
| UID | Identifiant utilisateur |
| GID | Groupe principal |
| Home | Répertoire personnel |
| Shell | Interpréteur de commandes |
Exemple :
alice:x:1000:1000:Alice Martin:/home/alice:/bin/bash
Groupe
Un groupe est un ensemble d'utilisateurs partageant certaines permissions.
Exemples :
- admins
- developpeurs
- comptabilite
- docker
Un utilisateur peut appartenir :
- à un groupe principal ;
- à plusieurs groupes secondaires.
Commandes principales
| Commande | Description |
|---|---|
| useradd | Créer un utilisateur |
| usermod | Modifier un utilisateur |
| userdel | Supprimer un utilisateur |
| passwd | Modifier un mot de passe |
| groupadd | Créer un groupe |
| groupmod | Modifier un groupe |
| groupdel | Supprimer un groupe |
| groups | Afficher les groupes d'un utilisateur |
| id | Afficher UID et GID |
| chfn | Modifier les informations utilisateur |
Création des utilisateurs
Créer un utilisateur simple
useradd stagex
Cette commande crée :
- un compte utilisateur ;
- une entrée dans
/etc/passwd; - une entrée dans
/etc/group; - un groupe primaire ;
- éventuellement un répertoire personnel selon la configuration du système.
Définir un mot de passe
passwd stagex
Le système demande deux fois le mot de passe.
Création avec répertoire personnel
useradd -m stagex
Création avec shell spécifique
useradd -s /bin/bash stagex
Création complète
useradd \
-u 1200 \
-g developpeurs \
-G docker,www-data \
-s /bin/bash \
-c "Stagiaire Informatique" \
-m stagex
Modification des utilisateurs
Modifier un utilisateur
Syntaxe :
usermod [options] utilisateur
Ajouter à plusieurs groupes
usermod -aG docker,www-data stagex
Changer le shell
usermod -s /bin/zsh stagex
Changer le répertoire personnel
usermod -d /srv/users/stagex stagex
Suppression des utilisateurs
Supprimer uniquement le compte
userdel stagex
Supprimer le compte et le répertoire personnel
userdel -r stagex
Gestion des groupes
Créer un groupe
groupadd stagiaire
Supprimer un groupe
groupdel stagiaire
Renommer un groupe
groupmod -n developpement stagiaire
Afficher les groupes d'un utilisateur
groups stagex
Exemple :
stagex : stagex docker developpeurs
Identifier un utilisateur
Commande id
Permet d'obtenir :
- UID ;
- GID ;
- groupes secondaires.
id stagex
Résultat :
uid=1001(stagex)
gid=1001(stagex)
groups=1001(stagex),1002(docker)
Fichier /etc/passwd
Rôle
Le fichier :
/etc/passwd
contient les informations principales des comptes utilisateurs.
Structure
Format :
login:x:uid:gid:commentaire:home:shell
Description des champs
| Position | Champ | Description |
|---|---|---|
| 1 | login | Nom de connexion |
| 2 | x | Mot de passe déplacé dans shadow |
| 3 | uid | Identifiant utilisateur |
| 4 | gid | Groupe principal |
| 5 | commentaire | Informations diverses |
| 6 | home | Répertoire personnel |
| 7 | shell | Shell de connexion |
Exemple
alice:x:1000:1000:Alice Martin:/home/alice:/bin/bash
Fichier /etc/group
Rôle
Stocke la définition des groupes.
Structure
groupe:x:gid:utilisateur1,utilisateur2
Exemple
docker:x:998:alice,bob
Description
| Champ | Description |
|---|---|
| groupe | Nom du groupe |
| x | Mot de passe historique |
| gid | Identifiant du groupe |
| liste | Membres du groupe |
Fichier /etc/shadow
Rôle
Contient les mots de passe chiffrés.
Sécurité
Ce fichier est accessible uniquement par l'administrateur.
Vérification :
ls -l /etc/shadow
Exemple :
-r-------- 1 root root
Gestion des mots de passe
Changer son propre mot de passe
passwd
Changer le mot de passe d'un utilisateur
passwd stagex
Verrouiller un compte
passwd -l stagex
Déverrouiller un compte
passwd -u stagex
Supprimer le mot de passe
passwd -d stagex
Répertoire modèle /etc/skel
Principe
Lors de la création d'un utilisateur, les fichiers contenus dans :
/etc/skel
sont copiés dans son répertoire personnel.
Exemples :
- .bashrc
- .profile
- .bash_profile
- configurations utilisateur
Vérification
ls -la /etc/skel
Informations complémentaires utilisateur
Modifier les informations personnelles
Commande :
chfn
Permet de modifier :
- nom complet ;
- bureau ;
- téléphone professionnel ;
- téléphone personnel.
Vérification des comptes
Vérification des utilisateurs
pwck
Vérifie :
- /etc/passwd
- /etc/shadow
Vérification des groupes
grpck
Vérifie :
- /etc/group
Bonnes pratiques d'administration
- Utiliser des groupes plutôt que des permissions individuelles.
- Ne jamais utiliser quotidiennement le compte root.
- Désactiver immédiatement les comptes inutilisés.
- Utiliser des mots de passe robustes.
- Vérifier régulièrement les comptes présents dans le système.
- Contrôler les appartenances aux groupes sensibles.
- Sauvegarder les fichiers de configuration des comptes.
Résumé
| Élément | Fichier / Commande |
|---|---|
| Créer un utilisateur | useradd |
| Modifier un utilisateur | usermod |
| Supprimer un utilisateur | userdel |
| Changer un mot de passe | passwd |
| Créer un groupe | groupadd |
| Supprimer un groupe | groupdel |
| Afficher les groupes | groups |
| Afficher UID/GID | id |
| Comptes utilisateurs | /etc/passwd |
| Groupes | /etc/group |
| Mots de passe | /etc/shadow |
| Modèle utilisateur | /etc/skel |
Gestion du système de fichiers
- On distingue plusieurs types.
| Symbole | Type | Description |
|---|---|---|
| - | Fichier ordinaire | Données ou programme |
| d | Répertoire | Contient d'autres fichiers |
| l | Lien symbolique | Référence vers un autre fichier |
| b | Périphérique bloc | Disque, SSD |
| c | Périphérique caractère | Terminal, port série |
| p | Tube nommé (FIFO) | Communication inter-processus |
| s | Socket | Communication réseau locale |
Identification
Commande :
ls -l
Exemple :
drwxr-xr-x 2 root root 4096 docs
-rw-r--r-- 1 user user 1200 notes.txt
lrwxrwxrwx 1 root root 7 python -> python3
Arborescence standard Linux
/bin
Contient les commandes essentielles nécessaires au fonctionnement du système.
Exemples :
/bin/ls
/bin/cp
/bin/mv
/bin/rm
/bin/cat
/sbin
Commandes réservées principalement à l'administration système.
Exemples :
/sbin/fsck
/sbin/reboot
/sbin/shutdown
/boot
Contient les fichiers nécessaires au démarrage.
Exemples :
vmlinuz
initramfs
grub
/dev
Contient les périphériques du système.
Exemples :
/dev/sda
/dev/sdb
/dev/null
/dev/tty
/dev/random
Exemple : /dev/null
Périphérique spécial qui ignore toutes les données écrites.
echo "test" > /dev/null
/etc
Contient les fichiers de configuration système.
Exemples importants :
| Fichier | Fonction |
|---|---|
| /etc/passwd | Comptes utilisateurs |
| /etc/group | Groupes |
| /etc/shadow | Mots de passe chiffrés |
| /etc/hosts | Résolution locale des noms |
| /etc/fstab | Montage des systèmes de fichiers |
| /etc/profile | Configuration globale du shell |
/home
Répertoires personnels des utilisateurs.
Exemple :
/home/alice
/home/bob
/home/admin
Chaque utilisateur possède généralement :
.bashrc
.profile
Documents
Téléchargements
Images
/root
Répertoire personnel de l'administrateur système.
Exemple :
/root
Il est distinct de :
/
/tmp
Répertoire temporaire.
Tous les utilisateurs peuvent y écrire.
Exemple :
touch /tmp/test.txt
Le répertoire possède généralement le Sticky Bit :
drwxrwxrwt
/usr
Contient la majorité des programmes et bibliothèques.
/usr/bin
Applications utilisateurs.
Exemples :
vim
less
grep
find
gcc
/usr/sbin
Outils d'administration.
/usr/lib
Bibliothèques partagées.
Documentation et données indépendantes de l'architecture.
/var
Données variables.
/var/log
Journaux système.
Exemples :
/var/log/syslog
/var/log/messages
/var/log/auth.log
/var/spool
Files d'attente.
Exemples :
- impression ;
- courrier ;
- tâches planifiées.
/var/tmp
Fichiers temporaires conservés plus longtemps que ceux de /tmp.
/proc
Système de fichiers virtuel représentant le noyau.
Exemples :
cat /proc/cpuinfo
cat /proc/meminfo
/sys
Interface virtuelle permettant d'accéder aux informations matérielles et noyau.
Exemple :
ls /sys/class/net
/mnt
Point de montage temporaire.
Exemple :
mount /dev/sdb1 /mnt
/media
Montage automatique des supports amovibles.
Exemples :
/media/usb
/media/cdrom
Chemins absolus et relatifs
Chemin absolu
Commence toujours par :
/
Exemple :
/home/alice/Documents/rapport.pdf
Chemin relatif
Calculé à partir du répertoire courant.
Exemple :
Documents/rapport.pdf
Répertoire courant
Afficher :
pwd
Exemple :
/home/alice
Changer de répertoire
cd /etc
Retour au répertoire personnel :
cd
Monter d'un niveau :
cd ..
Taille et occupation disque
Afficher l'espace disque
df -h
Exemple :
Filesystem Size Used Avail Use%
/dev/sda1 50G 15G 33G 31%
Afficher l'espace utilisé
du -sh /home/alice
Résumé de l'arborescence
| Répertoire | Fonction principale |
|---|---|
| / | Racine du système |
| /bin | Commandes essentielles |
| /boot | Démarrage |
| /dev | Périphériques |
| /etc | Configuration système |
| /home | Utilisateurs |
| /root | Administrateur |
| /tmp | Fichiers temporaires |
| /usr | Applications et bibliothèques |
| /var | Données variables |
| /proc | Informations noyau |
| /sys | Informations matérielles |
| /mnt | Montage temporaire |
| /media | Supports amovibles |
Recherche dans l'arborescence
find
Recherche par nom :
find /home -name "*.pdf"
Recherche par taille :
find /var/log -size +100M
Recherche par propriétaire :
find /home -user alice
Liens
Lien physique
Création :
ln fichier lien
Les deux noms pointent vers le même inode.
Lien symbolique
Création :
ln -s cible lien
Exemple :
ln -s /usr/bin/python3 python
Vérification :
ls -l
Résultat :
python -> /usr/bin/python3
Permissions et sécurité
Types de fichiers
Permissions Unix
Introduction
Les permissions Unix permettent de contrôler l'accès aux fichiers et répertoires d'un système Linux ou Unix.
Chaque fichier ou dossier possède :
- Un propriétaire (user)
- Un groupe (group)
- Un ensemble de permissions
Ce mécanisme constitue l'un des fondements de la sécurité des systèmes Unix.
Affichage des permissions
Pour afficher les permissions :
ls -l
Exemple :
-rwxr-xr-- 1 alice admin 1250 Jan 15 10:00 script.sh
Décomposition :
-rwxr-xr--
│││ │ │
│││ │ └── Permissions des autres (others)
│││ └──── Permissions du groupe (group)
│└─────── Permissions du propriétaire (user)
└──────── Type de fichier
= Types de fichiers
Le premier caractère indique le type.
| Symbole | Type |
|---|---|
| - | Fichier ordinaire |
| d | Répertoire |
| l | Lien symbolique |
| c | Périphérique caractère |
| b | Périphérique bloc |
| s | Socket |
| p | Tube nommé (FIFO) |
Les permissions de base
Chaque groupe d'utilisateurs possède trois permissions possibles.
| Permission | Symbole | Valeur | Signification |
|---|---|---|---|
| Lecture | r | 4 | Lire le contenu |
| Écriture | w | 2 | Modifier le contenu |
| Exécution | x | 1 | Exécuter un programme ou traverser un répertoire |
Les trois catégories d'utilisateurs
| Catégorie | Abréviation | Description |
|---|---|---|
| User | u | Propriétaire |
| Group | g | Groupe propriétaire |
| Others | o | Tous les autres utilisateurs |
Exemple :
-rwxr-xr--
Correspond à :
| Catégorie | Permissions |
|---|---|
| User | rwx |
| Group | r-x |
| Others | r-- |
Signification des permissions sur les fichiers
Lecture (r)
Permet :
- Lire le contenu d'un fichier.
- Utiliser des commandes comme :
cat fichier.txt
less fichier.txt
Écriture (w)
Permet :
- Modifier un fichier.
- Ajouter ou supprimer du contenu.
Exemple :
echo "test" >> fichier.txt
Exécution (x)
Permet :
- Exécuter un script ou un programme.
Exemple :
./script.sh
Signification des permissions sur les répertoires
Les permissions ont une signification différente.
Lecture (r)
Permet de lister le contenu.
ls repertoire
Écriture (w)
Permet :
- Créer des fichiers.
- Supprimer des fichiers.
- Renommer des fichiers.
Exécution (x)
Permet :
- Traverser le répertoire.
- Accéder aux fichiers qu'il contient.
Exemple :
cd repertoire
Représentation numérique (octale)
Chaque permission possède une valeur.
| Permission | Valeur |
|---|---|
| r | 4 |
| w | 2 |
| x | 1 |
Les valeurs s'additionnent.
| Permissions | Valeur |
|---|---|
| rwx | 7 |
| rw- | 6 |
| r-x | 5 |
| r-- | 4 |
| -wx | 3 |
| --x | 1 |
| --- | 0 |
Utilisation de chmod
Syntaxe numérique
chmod 755 fichier
Correspond à :
rwxr-xr-x
Détail :
| Chiffre | Permissions |
|---|---|
| 7 | rwx |
| 5 | r-x |
| 5 | r-x |
Exemples courants
| Valeur | Permissions | Utilisation |
|---|---|---|
| 777 | rwxrwxrwx | Accès total (à éviter) |
| 755 | rwxr-xr-x | Scripts et exécutables |
| 750 | rwxr-x--- | Accès limité au groupe |
| 700 | rwx------ | Privé |
| 644 | rw-r--r-- | Fichiers classiques |
| 600 | rw------- | Données sensibles |
Mode symbolique de chmod
Ajouter une permission
chmod u+x script.sh
Ajoute l'exécution au propriétaire.
Retirer une permission
chmod g-w fichier.txt
Retire l'écriture au groupe.
Attribuer une permission
chmod o=r fichier.txt
Donne uniquement la lecture aux autres.
Plusieurs modifications
chmod u+rwx,g+rx,o-r fichier
Modification du propriétaire
chown
Changer le propriétaire :
sudo chown alice fichier.txt
Changer propriétaire et groupe :
sudo chown alice:admin fichier.txt
Changement récursif
sudo chown -R alice:admin dossier
Modification du groupe
chgrp
sudo chgrp developpeurs projet
Permissions spéciales
SetUID (SUID)
Lors de l'exécution, le programme utilise les droits du propriétaire.
Exemple :
-rwsr-xr-x
Activation :
chmod u+s programme
Valeur numérique :
4xxx
Exemple :
chmod 4755 programme
SetGID (SGID)
Le programme s'exécute avec les droits du groupe.
Activation :
chmod g+s programme
Valeur numérique :
2xxx
Exemple :
chmod 2755 programme
Sur un répertoire :
- Les nouveaux fichiers héritent du groupe du dossier.
Sticky Bit
Empêche un utilisateur de supprimer les fichiers d'un autre utilisateur.
Exemple classique :
drwxrwxrwt
Répertoire :
/tmp
Activation :
chmod +t repertoire
Valeur numérique :
1xxx
Exemple :
chmod 1777 repertoire
= Umask
L'umask définit les permissions par défaut.
Afficher :
umask
Exemple :
0022
Calcul des permissions
Permissions maximales :
- Fichiers : 666
- Répertoires : 777
Calcul :
666 - 022 = 644
777 - 022 = 755
Résultat :
- Fichiers créés : rw-r--r--
- Répertoires créés : rwxr-xr-x
ACL (Access Control Lists)
Les ACL permettent des permissions plus fines.
Afficher les ACL
getfacl fichier.txt
Ajouter une ACL
setfacl -m u:bob:rwx fichier.txt
Retirer une ACL
setfacl -x u:bob fichier.txt
Vérification des permissions
Affichage détaillé
ls -l
Informations complètes
stat fichier.txt
Bonnes pratiques
- Éviter les permissions 777.
- Appliquer le principe du moindre privilège.
- Utiliser des groupes plutôt que des permissions individuelles.
- Réserver l'utilisation de SUID aux programmes nécessaires.
- Contrôler régulièrement les permissions critiques.
- Limiter les accès en écriture.
- Utiliser les ACL lorsque les permissions classiques sont insuffisantes.
Cas pratiques
Script exécutabl
chmod 755 sauvegarde.sh
Résultat :
rwxr-xr-x
Fichier confidentiel
chmod 600 secrets.txt
Résultat :
rw-------
Répertoire partagé entre administrateurs
chown root:admins partage
chmod 2775 partage
Effets :
- Groupe partagé.
- Héritage automatique du groupe.
- Écriture autorisée aux membres du groupe.
Résumé des commandes essentielles
| Commande | Fonction |
|---|---|
| ls -l | Afficher les permissions |
| chmod | Modifier les permissions |
| chown | Modifier le propriétaire |
| chgrp | Modifier le groupe |
| umask | Permissions par défaut |
| stat | Informations détaillées |
| getfacl | Afficher les ACL |
| setfacl | Modifier les ACL |
Mémo rapide
| Valeur | Permissions |
|---|---|
| 777 | rwxrwxrwx |
| 755 | rwxr-xr-x |
| 750 | rwxr-x--- |
| 700 | rwx------ |
| 644 | rw-r--r-- |
| 640 | rw-r----- |
| 600 | rw------- |
chmod
chown
chgrp
umask
SUID
SGID
Sticky Bit
Outils de gestion
Commandes d'administration
Introduction
L'administration Linux consiste à gérer les utilisateurs, les fichiers, les processus, les services, les disques, le réseau et la sécurité d'un système.
La plupart des opérations d'administration nécessitent les privilèges du superutilisateur (root).
Exécuter une commande en administrateur
sudo commande
Exemple :
sudo apt update
Gestion des utilisateurs
Afficher l'utilisateur courant
whoami
Afficher les utilisateurs connectés
who
ou
w
Créer un utilisateur
sudo useradd nom_utilisateur
Créer un utilisateur avec son répertoire personnel :
sudo useradd -m nom_utilisateur
Définir un mot de passe
sudo passwd nom_utilisateur
Modifier un utilisateur
sudo usermod options nom_utilisateur
Exemple : ajouter un utilisateur au groupe sudo :
sudo usermod -aG sudo nom_utilisateur
Supprimer un utilisateur
sudo userdel nom_utilisateur
Supprimer également son répertoire personnel :
sudo userdel -r nom_utilisateur
Gestion des groupes
Créer un groupe
sudo groupadd nom_groupe
Ajouter un utilisateur à un groupe
sudo usermod -aG nom_groupe utilisateur
Afficher les groupes d'un utilisateur
groups utilisateur
Gestion des fichiers et répertoires
Afficher le contenu d'un répertoire
ls
Options utiles :
ls -l
ls -la
Copier des fichiers
cp source destination
Copie récursive :
cp -r dossier1 dossier2
Déplacer ou renommer
mv ancien nouveau
Supprimer
rm fichier
Suppression récursive :
rm -r dossier
Suppression forcée :
rm -rf dossier
Créer un répertoire
mkdir nom_dossier
Permissions et propriété
Afficher les permissions
ls -l
Exemple :
-rwxr-xr--
- rwx : propriétaire
- r-x : groupe
- r-- : autres utilisateurs
Modifier les permissions
chmod 755 fichier
Notation symbolique :
chmod u+x script.sh
Modifier le propriétaire
sudo chown utilisateur fichier
Propriétaire et groupe :
sudo chown utilisateur:groupe fichier
Gestion des processus
Afficher les processus
ps aux
Vue dynamique :
top
ou
htop
Rechercher un processus
pgrep nginx
ou
ps aux | grep nginx
Arrêter un processus
kill PID
Forcer l'arrêt :
kill -9 PID
Gestion des services (systemd)
Vérifier l'état d'un service
systemctl status nginx
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
sudo systemctl reload nginx
Activer au démarrage
sudo systemctl enable nginx
Désactiver au démarrage
sudo systemctl disable nginx
Gestion des paquets
Debian / Ubuntu (APT)
Mettre à jour la liste des paquets :
sudo apt update
Mettre à jour le système :
sudo apt upgrade
Installer un paquet :
sudo apt install nginx
Supprimer un paquet :
sudo apt remove nginx
Red Hat / Rocky Linux / AlmaLinux
sudo dnf install nginx
sudo dnf update
sudo dnf remove nginx
Gestion des disques
Afficher l'espace disque
df -h
Taille des répertoires
du -sh dossier
Lister les disques
lsblk
Afficher les partitions
sudo fdisk -l
Monter un système de fichiers
sudo mount /dev/sdb1 /mnt
Démonter
sudo umount /mnt
Surveillance système
Charge système
uptime
Mémoire
free -h
Informations système
uname -a
Version de Linux
cat /etc/os-release
Réseau
Afficher les interfaces réseau
ip addr
Afficher la table de routage
ip route
Tester la connectivité
ping 8.8.8.8
Vérifier les ports ouverts
ss -tulpn
Résolution DNS
dig openai.com
ou
nslookup openai.com
Journaux système
Consulter les logs systemd
journalctl
Derniers événements :
journalctl -n 50
Suivi en temps réel :
journalctl -f
Logs d'un service
journalctl -u nginx
Gestion des tâches planifiées
Modifier le crontab utilisateur
crontab -e
Afficher les tâches planifiées
crontab -l
Exemple :
0 2 * * * /usr/local/bin/backup.sh
Cette tâche s'exécute tous les jours à 02h00.
Arrêt et redémarrage du système
Arrêter immédiatement
sudo shutdown now
Redémarrer
sudo reboot
Programmer un arrêt
sudo shutdown +30
Arrêt dans 30 minutes.
Bonnes pratiques d'administration
- Utiliser sudo plutôt que se connecter directement en root.
- Maintenir le système à jour régulièrement.
- Sauvegarder les données importantes.
- Vérifier régulièrement les journaux système.
- Limiter les permissions au strict nécessaire.
- Utiliser des mots de passe robustes et l'authentification par clé SSH.
- Tester les commandes potentiellement destructrices avant exécution.
- Documenter les modifications apportées au système.
Résumé des commandes essentielles
| Domaine | Commandes principales |
|---|---|
| Utilisateurs | useradd, usermod, userdel, passwd |
| Groupes | groupadd, groups |
| Fichiers | ls, cp, mv, rm, mkdir |
| Permissions | chmod, chown |
| Processus | ps, top, htop, kill |
| Services | systemctl |
| Paquets | apt, dnf |
| Disques | df, du, lsblk, mount |
| Réseau | ip, ping, ss, dig |
| Logs | journalctl |
| Planification | crontab |
| Système | uname, free, uptime, reboot |
Outils de visualisation
Éditeurs de texte
vi
Emacs
Etudes & exercices
Apache HTTP Server sous Linux
Guide détaillé pour débutants (format Wiki)
1. Présentation
Définition
Apache HTTP Server est un serveur web open source.
Rôle :
- Recevoir les requêtes HTTP/HTTPS
- Servir des pages web
- Héberger des applications web
- Agir comme reverse proxy
Fonctionnement général
Utilisateur
↓
Navigateur Web
↓
Apache
↓
Site Web
2. Concepts fondamentaux
HTTP
Protocole de communication web.
Port par défaut :
80
Communication non chiffrée.
HTTPS
Version sécurisée de HTTP.
Port par défaut :
443
Communication chiffrée via SSL/TLS.
3. Architecture Apache
Client | v Apache | +-- Modules | +-- Virtual Hosts | +-- PHP | +-- Applications
Modules courants
| Module | Fonction |
|---|---|
| mod_ssl | HTTPS |
| mod_rewrite | Réécriture d'URL |
| mod_headers | Gestion des en-têtes HTTP |
| mod_proxy | Reverse Proxy |
| mod_php | Exécution PHP |
4. Installation
Ubuntu / Debian
Mise à jour :
sudo apt update
sudo apt upgrade -y
Installation :
sudo apt install apache2 -y
Vérification :
sudo systemctl status apache2
Résultat attendu :
active (running)
Rocky Linux / AlmaLinux / CentOS
sudo dnf install httpd -y
sudo systemctl start httpd
sudo systemctl enable httpd
5. Gestion du service
Démarrer
sudo systemctl start apache2
Arrêter
sudo systemctl stop apache2
Redémarrer
sudo systemctl restart apache2
Recharger la configuration
sudo systemctl reload apache2
Vérifier le statut
sudo systemctl status apache2
6. Structure des répertoires
Ubuntu / Debian
/etc/apache2 ├── apache2.conf ├── ports.conf ├── sites-available ├── sites-enabled ├── mods-available ├── mods-enabled ├── conf-available └── conf-enabled
Description
| Répertoire | Description |
|---|---|
| apache2.conf | Configuration principale |
| ports.conf | Ports écoutés |
| sites-available | Sites disponibles |
| sites-enabled | Sites activés |
| mods-available | Modules installés |
| mods-enabled | Modules activés |
7. Configuration des ports
Fichier :
/etc/apache2/ports.conf
Exemple :
Listen 80
Listen 443
8. Répertoire Web
Par défaut :
/var/www/html
Exemple :
/var/www/html ├── index.html ├── css/ ├── js/ └── images/
Créer une page
sudo nano /var/www/html/index.html
<!DOCTYPE html>
<html>
<head>
<title>Mon site Apache</title>
</head>
<body>
<h1>Bienvenue</h1>
</body>
</html>
9. Vérification de la configuration
Test de syntaxe
sudo apachectl configtest
Résultat :
Syntax OK
Rechargement
sudo systemctl reload apache2
10. Virtual Hosts
Définition
Permet d'héberger plusieurs sites sur un seul serveur.
Exemple :
- site1.local
- site2.local
- site3.local
Création d'un site
Créer le répertoire :
sudo mkdir -p /var/www/site1
Créer la page :
sudo nano /var/www/site1/index.html
<h1>Site 1</h1>
Configuration
/etc/apache2/sites-available/site1.conf
<VirtualHost *:80>
ServerName site1.local
DocumentRoot /var/www/site1
ErrorLog ${APACHE_LOG_DIR}/site1_error.log
CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
</VirtualHost>
Activation
sudo a2ensite site1.conf
Désactivation
sudo a2dissite site1.conf
11. Journalisation
Access Log
Fichier :
/var/log/apache2/access.log
Exemple :
192.168.1.10 GET /index.html HTTP/1.1
Error Log
Fichier :
/var/log/apache2/error.log
Surveillance temps réel
tail -f /var/log/apache2/access.log
tail -f /var/log/apache2/error.log
12. Modules
Liste des modules
apache2ctl -M
Activer un module
sudo a2enmod rewrite
Désactiver un module
sudo a2dismod rewrite
13. Mod_Rewrite
Objectif
Transformer :
/article.php?id=15
en :
/article/15
Activation
sudo a2enmod rewrite
Exemple .htaccess
RewriteEngine On
RewriteRule ^bonjour$ hello.html [L]
14. Fichier .htaccess
Définition
Permet une configuration locale d'Apache.
Autoriser .htaccess
<Directory /var/www/site1>
AllowOverride All
</Directory>
15. Permissions Linux
Utilisateur Apache :
www-data
Changer le propriétaire :
sudo chown -R www-data:www-data /var/www/site1
Permissions :
sudo chmod -R 755 /var/www/site1
16. Sécurité
Masquer la version Apache
Fichier :
/etc/apache2/conf-available/security.conf
Configuration :
ServerTokens Prod
ServerSignature Off
17. HTTPS
Activation SSL
sudo a2enmod ssl
Installation Certbot
sudo apt install certbot python3-certbot-apache -y
Création d'un certificat
sudo certbot --apache
18. Pare-feu
Autoriser HTTP
sudo ufw allow 80/tcp
Autoriser HTTPS
sudo ufw allow 443/tcp
Vérifier
sudo ufw status
19. PHP avec Apache
Installation
sudo apt install php libapache2-mod-php -y
Test PHP
Créer :
sudo nano /var/www/html/info.php
Contenu :
<?php
phpinfo();
?>
Accès :
http://IP_DU_SERVEUR/info.php
20. Reverse Proxy
Architecture
Client | v Apache | v Application Node.js
Modules nécessaires
sudo a2enmod proxy
sudo a2enmod proxy_http
21. Bonnes pratiques
Recommandées
- Tester la configuration avant redémarrage
- Utiliser HTTPS
- Surveiller les logs
- Sauvegarder les fichiers de configuration
- Limiter les permissions
À éviter
- chmod 777
- Désactiver les logs
- HTTP en production
- Modifier sans sauvegarde
22. Glossaire
| Terme | Définition |
|---|---|
| Apache | Serveur Web Open Source |
| HTTP | Protocole Web |
| HTTPS | HTTP sécurisé |
| Virtual Host | Hébergement multi-sites |
| Module | Extension Apache |
| SSL/TLS | Chiffrement des communications |
| DocumentRoot | Répertoire du site |
| .htaccess | Configuration locale |
| Access Log | Journal des accès |
| Error Log | Journal des erreurs |
| Reverse Proxy | Relais vers une application |
23. Commandes essentielles
sudo apt install apache2
sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl reload apache2
sudo apachectl configtest
sudo a2ensite site.conf
sudo a2dissite site.conf
sudo a2enmod rewrite
sudo a2dismod rewrite
tail -f /var/log/apache2/access.log
tail -f /var/log/apache2/error.log
Linux
Distribution
- Qu'est ce qu'une distribution ?
Presentation
ISO
- Tu connais les fichiers ISO ?
- C’est le format magique qui permet de créer une copie numérique parfaite d’un CD ou DVD.
- Que ce soit pour installer Windows, tester une distribution Linux, sauvegarder un jeu ou protéger un film, l’ISO garde non seulement les fichiers, mais aussi la structure du disque. 🔥
👉 Résultat : tu peux le graver sur un CD, un DVD ou même une clé USB, et ton PC pourra démarrer directement dessus comme si c’était l’original.
- En gros, c’est l’outil ultime pour éviter les erreurs de copie et garder une sauvegarde nickel.
- Un fichier ISO est aussi un fichier qui contient les données d'un système à installer.
- On doit le graver sur un support comme une clef ou un CD ou DVD avant de le faire démarrer sur un ordinateur pour installer ce système.
Distributions
Centos
- CentOS est la plus stable des distributions présentées. Cette stabilité s'explique par un développement particulièrement long de chaque version. Ce cycle permet entre autres une meilleure correction des bugs et des failles de sécurité.
Alma
- AlmaLinux est une distribution Linux d'entreprise Open Source, détenue et gouvernée par la communauté, libre à tout jamais, axée sur la stabilité à long terme et fournissant une plateforme de production robuste. AlmaLinux OS est compatible avec RHEL®.
Debian
- C'est une distribution Linux, composée presque exclusivement de logiciels libres (en effet, la plupart des microcodes — notamment ceux des fondeurs — et des firmwares, ainsi que la partie non-free des dépôts, ne sont pas libres).
Autre
ISO
- Tu connais les fichiers ISO ?
- C’est le format magique qui permet de créer une copie numérique parfaite d’un CD ou DVD.
- Que ce soit pour installer Windows, tester une distribution Linux, sauvegarder un jeu ou protéger un film, l’ISO garde non seulement les fichiers, mais aussi la structure du disque. 🔥
👉 Résultat : tu peux le graver sur un CD, un DVD ou même une clé USB, et ton PC pourra démarrer directement dessus comme si c’était l’original.
- En gros, c’est l’outil ultime pour éviter les erreurs de copie et garder une sauvegarde nickel.
- Un fichier ISO est aussi un fichier qui contient les données d'un système à installer.
- On doit le graver sur un support comme une clef ou un CD ou DVD avant de le faire démarrer sur un ordinateur pour installer ce système.
Cours