CLinux

De TARENTINO
Aller à la navigationAller à la recherche
Array

15/06/2026


Support de cours GNU/Linux

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

Modèle:Attention

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

Navigation dans l'arborescence

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

Modèle:Attention

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

Modèle:Attention

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.

/usr/share

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




Navigation dans l'arborescence

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

  1. Éviter les permissions 777.
  2. Appliquer le principe du moindre privilège.
  3. Utiliser des groupes plutôt que des permissions individuelles.
  4. Réserver l'utilisation de SUID aux programmes nécessaires.
  5. Contrôler régulièrement les permissions critiques.
  6. Limiter les accès en écriture.
  7. 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

  1. Utiliser sudo plutôt que se connecter directement en root.
  2. Maintenir le système à jour régulièrement.
  3. Sauvegarder les données importantes.
  4. Vérifier régulièrement les journaux système.
  5. Limiter les permissions au strict nécessaire.
  6. Utiliser des mots de passe robustes et l'authentification par clé SSH.
  7. Tester les commandes potentiellement destructrices avant exécution.
  8. 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

Cours-6.png

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

load PDF