WIKI Retour au Portfolio

Dernière mise à jour : 23 juin 2026

3 - Manager le Système

Fiche de révision RHCSA (EX200 / RHEL 9) : filesystem, recherche & montage, liens, archivage, traitement de texte (grep/sed/awk), gestion des utilisateurs/groupes, sudo, SSH, permissions et configuration réseau.

ℹ️ Ce module couvre surtout la gestion des fichiers, utilisateurs et du réseau. La partie EX200 « operate running systems » (processus ps/top/kill, services systemctl/units/targets, logs journalctl, logiciels dnf, planification cron/timers) est traitée dans la fiche 4 - Administrer les tâches (voir renvoi en fin de fiche).


A. Filesystem (FHS)

  • Les répertoires sont standardisés par le FHS (Filesystem Hierarchy Standard).
  • Le point de départ du filesystem est le répertoire root /.
  • Plusieurs devices peuvent être intégrés au filesystem en les montant.
Répertoire Rôle
/etc Fichiers de configuration
/usr Programmes (équivalent du « Program Files » Windows)
/var Données variables / temporaires (logs, spool…)
/tmp Fichiers temporaires, seul répertoire inscriptible par tous
/home Répertoires personnels des utilisateurs
pwd        # voir le répertoire courant
cd /       # aller à la racine
ls         # lister

Commandes essentielles

ls            # lister
mkdir dossier # créer un dossier
cp src dst    # copier
mv src dst    # déplacer / renommer
rmdir dossier # supprimer un dossier VIDE
rm -rf dossier# supprimer dossier non vide (récursif, forcé)
rm fichier    # supprimer un fichier

🚨 rm -rf ne demande aucune confirmation : vérifier le chemin avant d'exécuter.


B. Trouver les fichiers

which ls      # localise un binaire présent dans $PATH
locate hosts  # recherche via une base indexée (updatedb)
find / -name "hosts"   # recherche flexible selon de nombreux critères

💡 locate est rapide mais dépend de l'index : lancer updatedb pour le rafraîchir. find parcourt le disque en direct (plus lent mais toujours à jour).

Exemples find

# Chercher par nom, en masquant les erreurs (permission denied)
find / -name "hosts" 2>/dev/null

# Tous les fichiers (pas dossiers) dépassant 1000 Mo
find / -type f -size +1000M

💡 grep -l ne renvoie que le nom des fichiers correspondants. \; clôt une instruction -exec. Le / indique qu'on cherche depuis la racine. Les 2>/dev/null jettent les erreurs (ex : on ne peut pas grep un dossier).

Capture du terminal root@client exécutant find /etc -size +1k -exec grep -l clienthamid : la sortie liste les fichiers correspondants /etc/shadow, /etc/passwd, /etc/shadow-, /etc/passwd-


C. Montage de device

Pour accéder à un device, il doit être rattaché à un répertoire : c'est le montage.

mount /dev/sdb1 /mnt   # monter le device sur /mnt (ex : clé USB = souvent sdb1)
findmnt                # afficher tous les devices montés
lsblk                  # voir les block devices (montés ou non)
umount /mnt            # démonter

💡 Pour un montage persistant au reboot, ajouter une ligne dans /etc/fstab (objectif EX200, voir module stockage).


Pointeurs vers d'autres emplacements (principe du raccourci). Linux distingue hard links et symbolic links.

ln  cible nom_lien     # hard link
ln -s cible nom_lien   # lien symbolique (soft link)
ls -il                 # lister avec les inodes

Comprendre :

  • L'inode est l'administration du fichier ; il pointe vers le block (localisation réelle des données).
  • Un hard link = un nom supplémentaire associé au même inode (on peut en avoir plusieurs).
  • Un lien symbolique pointe vers un nom/chemin et a son propre inode.
Hard link Lien symbolique
Inode Même que l'original Inode différent
Si l'original est supprimé Reste valide (les données survivent tant qu'un hard link existe) Devient cassé (dangling)
Traverser des filesystems Non Oui

💡 Dans ls -l, un l en première colonne des droits indique un lien symbolique.


E. L'archivage (tar)

Sert à archiver, compresser, extraire ou lister.

tar -cvf monarchive.tar /home/etc  # créer (c) une archive
tar -tvf monarchive.tar            # lister (t) le contenu
tar -xvf monarchive.tar            # extraire (x) dans le répertoire courant

Options de compression (à placer avec -c) :

Option Outil Extension Caractéristique
-z gzip .tar.gz Le plus courant, le plus rapide
-j bzip2 .tar.bz2 Compression intermédiaire
-J xz .tar.xz Meilleur taux de compression
tar -czvf archive.tar.gz /home/etc   # archive + gzip
tar -cjvf archive.tar.bz2 /home/etc  # archive + bzip2
tar -cJvf archive.tar.xz /home/etc   # archive + xz

F. Gestion des textes

more fichier     # affichage page par page
less fichier     # navigation avant/arrière (plus complet que more)
head -n 5 fichier# 5 premières lignes (10 par défaut)
tail -n 5 fichier# 5 dernières lignes (10 par défaut)
tail -f fichier  # suivre un fichier en temps réel (logs)
cat fichier      # afficher  (-A non-imprimables, -b numérote, -s compresse lignes vides)

Filtrer et transformer

cut -d: -f1 /etc/passwd          # colonne 1 (séparateur ':')
cut -d: -f1 /etc/passwd | sort   # + tri
echo hello | tr a-z A-Z          # translate : affiche HELLO
grep -v motif fichier            # exclure les lignes contenant motif
grep -A5 -B4 motif fichier       # 5 lignes après + 4 avant le match
grep -R -i motif /etc            # -R récursif dans l'arbo, -i insensible à la casse

Regular expressions (BRE)

Pattern Sens Exemple
^ début de ligne grep '^hamid' fichier
$ fin de ligne grep 'bash$' fichier
\b limite de mot grep 'hamid\b' (exclut « hamida »)
\{3\} n occurrences grep 'bo\{3\}t' → trouve « booot »
* 0 fois ou plus

Extended regex (ERE, grep -E)

Pattern Sens
+ une fois ou plus
? zéro ou une fois
. un caractère quelconque
| alternance (ceci OU cela)
grep -E 'colou?r' fichier   # 'color' ou 'colour'

awk — extraction par colonnes

awk -F: '{print $4}' /etc/passwd          # 4e colonne (séparateur ':')
awk -F: '/hamid/ {print $4}' /etc/passwd  # 4e colonne des lignes contenant 'hamid'
awk -F: '{print $NF}' /etc/passwd         # dernière colonne ($NF = number of fields)

sed — remplacement de texte

sed -n '5p' /etc/passwd            # imprimer (p) uniquement la ligne 5
sed -i 's/old/new/g' myfile        # remplacer old par new partout (g=global), -i en place
sed -i -e '10d' myfile             # supprimer (d) la ligne 10

🚨 sed -i modifie le fichier directement sur le disque : tester d'abord sans -i pour visualiser le résultat.


G. L'utilisateur root & sudo

  • L'UID 0 est celui de root (administrateur) : accès total au système (opère au plus près du kernel).
su - nom      # devenir 'nom' (avec son environnement)
su -          # devenir root
sudo -i       # ouvrir un shell root
sudo commande # exécuter une commande en tant que root

Configuration sudo

visudo        # éditer /etc/sudoers en toute sécurité (vérif syntaxe)

Dans le fichier sudoers :

%wheel ALL=(ALL) ALL                         # tout le groupe wheel a sudo
%wheel ALL=(ALL) NOPASSWD: ALL               # 🚨 NE PAS activer : sudo sans mot de passe
Defaults timestamp_timeout=60                # ne redemande pas le mot de passe pendant 60 min
student ALL=/sbin/useradd                    # 'student' n'a sudo que pour useradd
%users ALL=/bin/mount /dev/sdb               # le groupe users autorisé à monter sdb
usermod -aG wheel student   # ajouter student au groupe wheel (sudo)

💡 Pour rester organisé, créer des fichiers par utilisateur dans /etc/sudoers.d/ :

# /etc/sudoers.d/hamid
hamid ALL=/usr/bin/passwd, !/usr/bin/passwd root   # passwd autorisé SAUF pour root

H. SSH (Secure Shell)

  • Activé par défaut via le service sshd.
systemctl status sshd   # état du service SSH
ssh user@IP             # se connecter (root souvent désactivé pour SSH)

💡 Authentification par clés recommandée : ssh-keygen puis ssh-copy-id user@IP.


I. Gestion des utilisateurs

Les comptes donnent aux personnes/processus l'accès aux ressources : les processus utilisent des comptes système, les personnes des comptes utilisateur.

Propriétés dans /etc/passwd :

Name:Passwd:UID:GID:GECOS:DIRECTORY:SHELL
  • UID : id utilisateur — GID : id du groupe primaire — GECOS : infos complémentaires — SHELL : programme lancé après authentification réussie.
  • /etc/shadow : contient le mot de passe chiffré.
useradd nom   # créer un utilisateur
usermod nom   # modifier
userdel nom   # supprimer
passwd nom    # définir/changer le mot de passe

Exemples

useradd lori -u 2000 -s /sbin/nologin  # UID 2000, shell nologin
userdel -r lori                        # supprime aussi /home et le mail spool

Réglages par défaut

useradd -D                 # afficher les valeurs par défaut
vi /etc/login.defs         # paramètres globaux (UID min/max, expiration mdp...)
vi /etc/default/useradd    # défauts spécifiques à useradd
  • /etc/skel : tout fichier placé ici est copié dans le /home de chaque nouvel utilisateur.

Limiter les accès

usermod -L hamid              # verrouiller le compte
usermod -U hamid              # déverrouiller
usermod -e 2024-01-01 hamid   # date d'expiration du compte
usermod -s /sbin/nologin hamid# empêcher la connexion (shell nologin)

J. Gestion des groupes

  • Chaque utilisateur appartient à au moins un groupe (le groupe primaire, défini dans /etc/passwd).
  • Les groupes secondaires sont gérés via /etc/group.
id user                   # voir UID/GID et groupes de l'utilisateur
groupadd nom              # créer un groupe
groupdel nom              # supprimer
groupmod nom              # modifier
lid -g groupe             # lister les membres d'un groupe
usermod -aG groupe user   # ajouter user à un groupe secondaire (⚠️ ne pas oublier -a)

🚨 usermod -G sans -a remplace la liste des groupes secondaires (retire l'utilisateur des autres). Toujours utiliser -aG pour ajouter.


K. Gestion des mots de passe

  • Stockés chiffrés dans /etc/shadow.
  • Exigences de base dans /etc/login.defs ; règles avancées via PAM (Pluggable Authentication Modules).
chage user      # gérer l'expiration / âge du mot de passe (interactif)
chage -l user   # afficher les paramètres d'expiration

Astuces (scripting)

echo password | passwd --stdin anna   # définir le mot de passe sans prompt
passwd -l user                        # verrouiller le mot de passe d'un compte

Pendant l'examen, réflexe : commande --help pour retrouver les options.


L. Les permissions (UGO)

Chaque fichier a un User owner, un Group owner et Others : UGO.

ls -l                  # afficher les permissions
chown user fichier     # changer le propriétaire
chown user:group fichier
chown :group fichier   # changer seulement le groupe
chgrp groupe fichier   # changer le groupe

Read / Write / Execute

Tableau des effets de read/write/execute sur un fichier et sur un répertoire : Read (4) = ouvrir un fichier / lister un dossier ; Write (2) = modifier un fichier / créer-supprimer dans un dossier ; Execute (1) = exécuter un fichier / faire cd dans un dossier

  • Valeurs : 4 (read), 2 (write), 1 (execute).
  • 💡 Utiliser X (majuscule) sur un dossier applique l'exécution aux dossiers uniquement, pas aux fichiers ordinaires (évite de rendre les fichiers exécutables).
chmod 750 fichier   # 7=rwx (user), 5=r-x (group), 0=--- (others)
chmod +x fichier    # ajouter execute à tout le monde
chmod g+w fichier   # write au groupe
chmod u-w fichier   # retirer write au propriétaire

Dossier partagé : SGID & Sticky bit

  • SGID (g+s) sur un dossier : tous les fichiers créés héritent du groupe du dossier (utile pour le partage en équipe).
  • Sticky bit (+t) sur un dossier : seul le propriétaire d'un fichier peut le supprimer (cf. /tmp).
chmod g+s dossier    # SGID
chmod +t  dossier    # sticky bit
chmod 3770 dossier   # 3 = SGID(2)+sticky(1), rwx user & group, rien pour others

Permissions par défaut & umask

  • Valeurs de base : fichiers 666 (rw-rw-rw-), dossiers 777 (rwxrwxrwx).
  • L'umask retranche des permissions : droits effectifs = défaut − umask.

Schéma du calcul umask : on part des droits par défaut (rw-rw-rw-), on soustrait l'umask (---w--w-), il reste les droits effectifs (rw-r--r--)

umask        # afficher l'umask courant
umask 027    # exemple : fichiers → rw-r----- , dossiers → rwxr-x---

💡 Pour rendre un umask permanent : l'ajouter dans /etc/bashrc (global) ou ~/.bashrc (par utilisateur). Recharger sans rouvrir le shell :

source ~/.bashrc   # ou : . ~/.bashrc

M. Configuration réseau

  • IPv6 : attribution via DHCPv6 ou SLAAC (paquet radvd côté routeur).
  • BIOS Device Name : nom d'interface prédictible basé sur l'emplacement matériel (ex : ens33, enp0s3).

Résolution de noms / hostname

hostnamectl set-hostname client.example.com   # définir le nom de la machine
Fichier Rôle
/etc/hostname Nom d'hôte persistant
/etc/hosts Résolution de noms locale (statique)
/etc/resolv.conf Configuration du client DNS (nameservers)
/etc/nsswitch.conf Ordre de résolution (ligne hosts:)

La commande ip

Remplace l'ancienne ifconfig. Sert surtout au test / troubleshooting (la config persistante passe par NetworkManager).

ip addr                              # propriétés d'adresses
ip addr add 10.0.0.10/24 dev ens33   # ajouter une IP (non persistant)
ip link                              # propriétés des interfaces (couche 2)
ip -s link                           # avec statistiques
ip route                             # table de routage
ip route add default via 10.0.0.1    # route par défaut
ip route add 2.2.2.0/24 via 10.0.0.1 # route vers un réseau

🚨 Les changements via ip sont volatils (perdus au reboot). Pour du persistant, utiliser nmcli.

NetworkManager (nmcli / nmtui)

  • Config stockée dans /etc/NetworkManager/system-connections/ (anciennement /etc/sysconfig/network-scripts/).
  • Les devices = interfaces ; connection = profil de configuration.
systemctl status NetworkManager
nmcli con show          # connexions configurées
nmcli dev status        # état des interfaces

# Ajouter une connexion statique
nmcli con add type ethernet con-name maconnexion ifname ens33 \
  ipv4.addresses 10.0.0.10/24 ipv4.gateway 10.0.0.1 ipv4.method manual

nmcli con up maconnexion        # activer la connexion
nmcli con show maconnexion      # voir les réglages
nmcli con mod maconnexion ...   # modifier
nmcli con reload                # recharger après modification de fichier

💡 nmtui : interface texte (créer → activer → appliquer). On peut y ajouter des IP secondaires.

Troubleshooting réseau

ping -c 4 serveur          # envoyer 4 paquets puis stopper
ping6 2001::210            # ping en IPv6
ping6 ff02::1%ens33        # link-local v6 : préciser le NIC obligatoire
ip route                   # table de routage v4
ip -6 route                # table de routage v6
tracepath serveur          # chemin réseau complet
tracepath6 serveur
ss -tu                     # sockets TCP/UDP
ss -tuna                   # + numériques + en écoute
ss -tunap                  # + processus associés (PID/programme)

N. Operate Running Systems (renvoi)

La partie EX200 « operate running systems » (processus ps/top/kill, signaux, services systemctl/units/targets, journaux journalctl, logiciels dnf/rpm, planification cron/timers/at, timedatectl) est traitée dans sa fiche dédiée.

🔗 Voir fiche 4 - Administrer les tâches (systemd, services, journald, cron).

Sources : Red Hat EX200 — exam objectives