Identifier le système
Attention, effet notable. Cette commande peut s'exécuter avec des droits élevés. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
cat /etc/redhat-releaseuname -rhostnamectlsudo subscription-manager statusBloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : VM RHEL ; lecture seule.
- Droits : utilisateur ;
sudopoursubscription-manager. - Effet : aucun.
- Vérification : la version majeure/mineure correspond à celle attendue.
- Retour arrière : sans objet.
Les trois couches de contrôle
| Couche | Outil | Refus typique | Diagnostic |
|---|---|---|---|
| réseau | firewalld | délai dépassé, connexion refusée | firewall-cmd --list-all |
| permissions (DAC) | chmod, chown, ACL | Permission denied | ls -l, getfacl |
| SELinux (MAC) | contextes, booléens | Permission denied malgré des droits corrects | ausearch -m AVC -ts recent, ls -Z |
Ordre de diagnostic : service (systemctl, journalctl) → réseau (nmcli, ip) → pare-feu → permissions → SELinux → application.
Abonnement et dépôts
| Besoin | Commande | Effet |
|---|---|---|
| enregistrer (clé d'activation) | sudo subscription-manager register --activationkey=<clé> --org=<org> | associe la machine à un compte |
| état | sudo subscription-manager status | lecture |
| dépôts activés | sudo subscription-manager repos --list-enabled | lecture |
| dépôts vus par dnf | dnf repolist | lecture |
| désenregistrer | sudo subscription-manager unregister | perte d'accès aux dépôts |
Ne jamais écrire la clé ni l'identifiant d'organisation dans un fichier versionné.
dnf et paquets
| Besoin | Commande | Remarque |
|---|---|---|
| chercher / détail | dnf search <mot> ; dnf info <paquet> | lecture |
| installer | sudo dnf install <paquet> | relire la liste avant de confirmer |
| mettre à jour tout | sudo dnf upgrade | à effet |
| sécurité seulement | sudo dnf upgrade --security | option à confirmer |
| avis disponibles | dnf updateinfo list --security | lecture ; à confirmer |
| qui fournit un fichier | dnf provides <chemin> | lecture |
| paquet installé | rpm -q <paquet> ; rpm -ql <paquet> | lecture |
| historique | dnf history list ; dnf history info <id> | lecture |
| annuler | sudo dnf history undo <id> | limites : configuration, noyau |
| retirer | sudo dnf remove <paquet> | retire aussi les dépendances orphelines |
| redémarrage nécessaire ? | dnf needs-restarting -r | paquet dnf-utils à confirmer |
Modules (RHEL 9 et 8 seulement : RHEL 10 ne distribue aucun contenu modulaire) : dnf module list, dnf module enable <module>:<flux>, dnf module reset <module>.
Attention, effet notable. Cette commande peut supprimer ou retirer des éléments, créer ou modifier une configuration. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
sudo dnf install chronysudo dnf history undo lastsudo dnf remove chronyBloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : VM jetable ;
chronyen exemple. - Droits :
sudo. - Effet : ajoute, annule puis supprime le paquet et ses dépendances orphelines.
- Vérification :
rpm -q chrony,dnf history list. - Retour arrière :
dnf history undo <id>; sinon instantané de la VM.
systemd et journaux
| Besoin | Commande |
|---|---|
| état d'un service | systemctl status <unité> |
| démarrage / arrêt / relance | sudo systemctl start|stop|restart <unité> |
| au démarrage | sudo systemctl enable|disable [--now] <unité> |
| actif ? activé ? | systemctl is-active <unité> ; systemctl is-enabled <unité> |
| unités en échec | systemctl list-units --state=failed |
| cible par défaut | systemctl get-default |
| surcharger une unité | sudo systemctl edit <unité> puis sudo systemctl daemon-reload |
| journal d'une unité | journalctl -u <unité> --since "1 hour ago" |
| erreurs du démarrage courant | journalctl -p err -b |
| suivre en direct | journalctl -f |
| démarrages conservés | journalctl --list-boots |
Attention, effet notable. Cette commande peut créer ou modifier une configuration, s'exécuter avec des droits élevés. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
sudo systemctl disable --now chronydBloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : VM jetable ; jamais sur
sshdquand l'accès se fait par SSH. - Droits :
sudo. - Effet : arrête le service et le retire du démarrage.
- Vérification :
systemctl is-active chronydrenvoieinactive. - Retour arrière :
sudo systemctl enable --now chronyd.
Utilisateurs, groupes, sudo
| Besoin | Commande | Remarque |
|---|---|---|
| qui suis-je / un compte | id ; id demo | lecture |
| droits sudo | sudo -l | lecture |
| créer un compte | sudo useradd -m demo | puis sudo passwd demo (saisie interactive) |
ajouter à wheel | sudo usermod -aG wheel demo | -a obligatoire, sinon les groupes sont remplacés |
| retirer d'un groupe | sudo gpasswd -d demo wheel | |
| supprimer | sudo userdel -r demo | supprime le répertoire personnel |
| éditer sudoers | sudo visudo ; sudo visudo -c | jamais un éditeur direct |
| verrouiller / déverrouiller | sudo passwd -l demo ; sudo passwd -u demo |
Permissions et ACL
| Besoin | Commande |
|---|---|
| lire droits et contexte | ls -l ; ls -Z ; stat <fichier> |
| changer le mode | chmod 750 <chemin> ; chmod g+w <fichier> |
| changer propriétaire | sudo chown demo:demo <chemin> |
| ACL : lire / ajouter / retirer | getfacl <chemin> ; setfacl -m u:demo:rx <chemin> ; setfacl -x u:demo <chemin> |
| répertoire à groupe hérité | chmod g+s <répertoire> |
Repères octaux : r=4, w=2, x=1 ; 750 = propriétaire rwx, groupe r-x, autres rien. Pour un répertoire, x = traverser.
Attention, effet notable. Cette commande peut modifier des droits, des fichiers ou des processus. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
chmod -R g-w ~/essaiBloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : répertoire d'essai seulement ; jamais
chmod -Rsur/,/etc,/usrni777« pour que ça marche ». - Droits : propriétaire.
- Effet : retire l'écriture du groupe sur tout l'arbre.
- Vérification :
ls -lR ~/essai | head. - Retour arrière :
chmod -R g+w ~/essai(si l'état d'origine était identique partout : sinon noterstatavant).
Stockage : disque, LVM, XFS
| Besoin | Commande | Remarque |
|---|---|---|
| arbre des disques | lsblk ; lsblk -f | lecture |
| espace utilisé | df -hT | lecture |
| identifiants (UUID) | sudo blkid | pour /etc/fstab |
| lire LVM | sudo pvs ; sudo vgs ; sudo lvs | lecture |
tester /etc/fstab | sudo mount -a | avant tout redémarrage |
Attention, effet notable. Cette commande peut effacer ou formater un volume, s'exécuter avec des droits élevés. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
sudo pvcreate /dev/vdbsudo vgcreate vg_demo /dev/vdbsudo lvcreate -n lv_donnees -L 2G vg_demosudo mkfs.xfs /dev/vg_demo/lv_donneessudo lvextend -r -L +1G /dev/vg_demo/lv_donneesBloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : VM jetable ;
/dev/vdb= disque de test vérifié aveclsblk(ces commandes détruisent son contenu). - Droits : root.
- Effet : crée PV, VG, LV, XFS ;
-ragrandit aussi le système de fichiers. XFS : agrandir oui, réduire non (principe non vérifié ici). - Vérification :
lvs,df -hT. - Retour arrière :
umount,lvremove,vgremove,pvremove(données perdues) ; ou instantané de la VM.
Réseau (NetworkManager)
| Besoin | Commande |
|---|---|
| périphériques / profils | nmcli device status ; nmcli connection show |
| détail d'un périphérique | nmcli -p device show <interface> |
| adresses / routes | ip -br address ; ip route |
| DNS | resolvectl status ; resolvectl query example.test |
| nom d'hôte | hostnamectl |
Attention, effet notable. Cette commande peut créer ou modifier une configuration, s'exécuter avec des droits élevés. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
sudo nmcli connection modify "Wired connection 1" ipv4.method manual \ ipv4.addresses 192.0.2.10/24 ipv4.gateway 192.0.2.1 ipv4.dns 192.0.2.53sudo nmcli connection up "Wired connection 1"Bloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : console de la VM (pas SSH : la session serait coupée) ; nom du profil relevé avec
nmcli connection show. - Droits :
sudo. - Effet : adresse fixe appliquée immédiatement.
- Vérification :
ip -br address;ip route. - Retour arrière :
nmcli connection modify "Wired connection 1" ipv4.method auto ipv4.addresses "" ipv4.gateway "" ipv4.dns ""puisconnection up.
Différence : RHEL 10 n'accepte plus les fichiers ifcfg (format keyfile dans /etc/NetworkManager/system-connections/).
firewalld
| Besoin | Commande |
|---|---|
| état / zones actives | sudo firewall-cmd --state ; --get-active-zones |
| règles actives | sudo firewall-cmd --list-all |
| règles permanentes | sudo firewall-cmd --list-all --permanent |
| services connus | sudo firewall-cmd --get-services |
Attention, effet notable. Cette commande peut s'exécuter avec des droits élevés. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
sudo firewall-cmd --add-service=httpsudo firewall-cmd --runtime-to-permanentsudo firewall-cmd --permanent --remove-service=httpsudo firewall-cmd --reloadBloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : VM jetable ; seconde session SSH ouverte ; ne jamais retirer
sshde la zone active. - Droits :
sudo. - Effet :
--add-service: exécution seulement ;--runtime-to-permanent: rend durable ;--permanent+--reload: modification durable appliquée. - Vérification :
--list-servicespuis--list-services --permanent. - Retour arrière :
--remove-service=http;--reloadrétablit le permanent.
SELinux
| Besoin | Commande |
|---|---|
| mode | getenforce ; sestatus |
| contextes | ls -Z <chemin> ; ps -eZ | grep <processus> |
| booléens | getsebool -a | grep <service> |
| refus récents | sudo ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent |
| analyse guidée | sudo sealert -l "*" (paquet setroubleshoot) |
| règles d'étiquette | sudo semanage fcontext -l | grep <chemin> |
Démarche : lire le refus → identifier la cause (étiquette, booléen, port) → corriger → vérifier. setenforce 0 ne sert qu'à confirmer que SELinux est en cause, jamais de solution.
Attention, effet notable. Cette commande peut s'exécuter avec des droits élevés. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
sudo semanage fcontext -a -t httpd_sys_content_t "/srv/site(/.*)?"sudo restorecon -R -v /srv/sitesudo setsebool -P httpd_can_network_connect onsudo semanage port -a -t http_port_t -p tcp 8081Bloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : VM jetable ; types, booléens et ports d'exemple (à confirmer par
semanage fcontext -l,getsebool -a,semanage port -l). - Droits : root.
- Effet : règle d'étiquette durable, réétiquette récursive, booléen permanent, port ajouté à un type.
- Vérification :
ls -Z /srv/site,getsebool httpd_can_network_connect,semanage port -l | grep 8081. - Retour arrière :
semanage fcontext -d …puisrestorecon -R -v;setsebool -P … off;semanage port -d -t http_port_t -p tcp 8081.
SSH
| Besoin | Commande |
|---|---|
| créer une clé | ssh-keygen -t ed25519 -C "demo@example.test" |
| installer la clé publique | ssh-copy-id demo@srv1.example.test |
| tester par clé seule | ssh -o PreferredAuthentications=publickey demo@srv1.example.test |
| valider la configuration | sudo sshd -t |
| configuration effective | sudo sshd -T | grep -Ei 'permitroot|passwordauth' |
| appliquer | sudo systemctl reload sshd |
Réglages cités par la documentation RHEL 9 : PasswordAuthentication no, PubkeyAuthentication yes, KbdInteractiveAuthentication no, PermitRootLogin no, AllowUsers/AllowGroups, X11Forwarding no.
Attention, effet notable. Cette commande peut s'exécuter avec des droits élevés. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
sudo cp -p /etc/ssh/sshd_config /root/sshd_config.avantsudo sshd -t && sudo systemctl reload sshdBloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : VM jetable ; clé testée avec succès avant de désactiver les mots de passe ; deux sessions ouvertes ; console sous la main.
- Droits :
sudo. - Effet : copie la configuration puis applique la nouvelle seulement si la syntaxe est valide.
- Vérification : nouvelle connexion par clé acceptée, par mot de passe refusée.
- Retour arrière :
sudo cp -p /root/sshd_config.avant /etc/ssh/sshd_config && sudo systemctl reload sshd.
Audit et mises à jour de sécurité
| Besoin | Commande |
|---|---|
| état de l'audit | sudo systemctl status auditd |
| chercher | sudo ausearch -m USER_LOGIN -ts today ; sudo ausearch -k <clé> |
| synthèse | sudo aureport --auth --summary |
| règles actives | sudo auditctl -l |
| journal | /var/log/audit/audit.log (sensible) |
| règles persistantes | fichiers de /etc/audit/rules.d/ puis sudo augenrules --load |
| mises à jour disponibles | dnf check-update (code 100 : il y en a) |
Sauvegarde de base
Attention, effet notable. Cette commande peut s'exécuter avec des droits élevés, écrire ou écraser un fichier. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
rpm -qa --qf '%{NAME}\n' | sort > /tmp/paquets.txtsudo tar --acls --selinux --xattrs -czf /tmp/etc-sauvegarde.tar.gz /etcsudo tar -tzf /tmp/etc-sauvegarde.tar.gz | headBloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : VM jetable ; options
tarà confirmer avecman tar; copier hors de la machine, jamais au même endroit que les données. - Droits :
sudo. - Effet : crée deux fichiers ; l'archive contient des données sensibles (droits stricts).
- Vérification :
tar -tzf; restauration testée dans un répertoire vide. - Retour arrière : supprimer les fichiers d'essai créés.
Cockpit et Podman (mention)
Cockpit (console web, cockpit.socket, port 9090 de mémoire) : guide « Managing systems in the RHEL web console ». Podman : guide « Building, running, and managing containers » ; notions communes dans le cours Docker. Détails non vérifiés.
Différences RHEL 9 / 10 (d'après le guide d'adoption de RHEL 10)
| Sujet | RHEL 9 | RHEL 10 |
|---|---|---|
modules dnf | présents | aucun contenu modulaire |
| profils réseau | ifcfg et keyfile | keyfile seulement |
teamd, dhclient | présents (non relu) | retirés |
fips-mode-setup | présent (non relu) | retiré ; FIPS à l'installation |
| clés d'hôte SSH | — | permissions 0600 (au lieu de 0640) |
firewalld | zones | zones + policy sets |
Sources
Consultées le 18 octobre 2026 (lecture par outil de synthèse) ; versions : RHEL 10.2, 9.8, 8.10 d'après la page de cycle de vie.