Aller au contenu
Sommaire

Fiche mémo Linux RHEL

Fiche mémo · environ 10 min de lecture

Validé

Validé. Ce site n’exécute aucune commande. Sources

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.

Terminal
cat /etc/redhat-releaseuname -rhostnamectlsudo subscription-manager status
  • Contexte : VM RHEL ; lecture seule.
  • Droits : utilisateur ; sudo pour subscription-manager.
  • Effet : aucun.
  • Vérification : la version majeure/mineure correspond à celle attendue.
  • Retour arrière : sans objet.

Les trois couches de contrôle

CoucheOutilRefus typiqueDiagnostic
réseaufirewallddélai dépassé, connexion refuséefirewall-cmd --list-all
permissions (DAC)chmod, chown, ACLPermission deniedls -l, getfacl
SELinux (MAC)contextes, booléensPermission denied malgré des droits correctsausearch -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

BesoinCommandeEffet
enregistrer (clé d'activation)sudo subscription-manager register --activationkey=<clé> --org=<org>associe la machine à un compte
étatsudo subscription-manager statuslecture
dépôts activéssudo subscription-manager repos --list-enabledlecture
dépôts vus par dnfdnf repolistlecture
désenregistrersudo subscription-manager unregisterperte d'accès aux dépôts

Ne jamais écrire la clé ni l'identifiant d'organisation dans un fichier versionné.

dnf et paquets

BesoinCommandeRemarque
chercher / détaildnf search <mot> ; dnf info <paquet>lecture
installersudo dnf install <paquet>relire la liste avant de confirmer
mettre à jour toutsudo dnf upgradeà effet
sécurité seulementsudo dnf upgrade --securityoption à confirmer
avis disponiblesdnf updateinfo list --securitylecture ; à confirmer
qui fournit un fichierdnf provides <chemin>lecture
paquet installérpm -q <paquet> ; rpm -ql <paquet>lecture
historiquednf history list ; dnf history info <id>lecture
annulersudo dnf history undo <id>limites : configuration, noyau
retirersudo dnf remove <paquet>retire aussi les dépendances orphelines
redémarrage nécessaire ?dnf needs-restarting -rpaquet 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.

Terminal
sudo dnf install chronysudo dnf history undo lastsudo dnf remove chrony
  • Contexte : VM jetable ; chrony en 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

BesoinCommande
état d'un servicesystemctl status <unité>
démarrage / arrêt / relancesudo systemctl start|stop|restart <unité>
au démarragesudo systemctl enable|disable [--now] <unité>
actif ? activé ?systemctl is-active <unité> ; systemctl is-enabled <unité>
unités en échecsystemctl list-units --state=failed
cible par défautsystemctl 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 courantjournalctl -p err -b
suivre en directjournalctl -f
démarrages conservésjournalctl --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.

Terminal
sudo systemctl disable --now chronyd
  • Contexte : VM jetable ; jamais sur sshd quand 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 chronyd renvoie inactive.
  • Retour arrière : sudo systemctl enable --now chronyd.

Utilisateurs, groupes, sudo

BesoinCommandeRemarque
qui suis-je / un compteid ; id demolecture
droits sudosudo -llecture
créer un comptesudo useradd -m demopuis sudo passwd demo (saisie interactive)
ajouter à wheelsudo usermod -aG wheel demo-a obligatoire, sinon les groupes sont remplacés
retirer d'un groupesudo gpasswd -d demo wheel
supprimersudo userdel -r demosupprime le répertoire personnel
éditer sudoerssudo visudo ; sudo visudo -cjamais un éditeur direct
verrouiller / déverrouillersudo passwd -l demo ; sudo passwd -u demo

Permissions et ACL

BesoinCommande
lire droits et contextels -l ; ls -Z ; stat <fichier>
changer le modechmod 750 <chemin> ; chmod g+w <fichier>
changer propriétairesudo chown demo:demo <chemin>
ACL : lire / ajouter / retirergetfacl <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.

Terminal
chmod -R g-w ~/essai
  • Contexte : répertoire d'essai seulement ; jamais chmod -R sur /, /etc, /usr ni 777 « 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 noter stat avant).

Stockage : disque, LVM, XFS

BesoinCommandeRemarque
arbre des disqueslsblk ; lsblk -flecture
espace utilisédf -hTlecture
identifiants (UUID)sudo blkidpour /etc/fstab
lire LVMsudo pvs ; sudo vgs ; sudo lvslecture
tester /etc/fstabsudo mount -aavant 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.

Terminal
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_donnees
  • Contexte : VM jetable ; /dev/vdb = disque de test vérifié avec lsblk (ces commandes détruisent son contenu).
  • Droits : root.
  • Effet : crée PV, VG, LV, XFS ; -r agrandit 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)

BesoinCommande
périphériques / profilsnmcli device status ; nmcli connection show
détail d'un périphériquenmcli -p device show <interface>
adresses / routesip -br address ; ip route
DNSresolvectl status ; resolvectl query example.test
nom d'hôtehostnamectl

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.

Terminal
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"
  • 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 "" puis connection up.

Différence : RHEL 10 n'accepte plus les fichiers ifcfg (format keyfile dans /etc/NetworkManager/system-connections/).

firewalld

BesoinCommande
état / zones activessudo firewall-cmd --state ; --get-active-zones
règles activessudo firewall-cmd --list-all
règles permanentessudo firewall-cmd --list-all --permanent
services connussudo 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.

Terminal
sudo firewall-cmd --add-service=httpsudo firewall-cmd --runtime-to-permanentsudo firewall-cmd --permanent --remove-service=httpsudo firewall-cmd --reload
  • Contexte : VM jetable ; seconde session SSH ouverte ; ne jamais retirer ssh de 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-services puis --list-services --permanent.
  • Retour arrière : --remove-service=http ; --reload rétablit le permanent.

SELinux

BesoinCommande
modegetenforce ; sestatus
contextesls -Z <chemin> ; ps -eZ | grep <processus>
booléensgetsebool -a | grep <service>
refus récentssudo ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent
analyse guidéesudo sealert -l "*" (paquet setroubleshoot)
règles d'étiquettesudo 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.

Terminal
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 8081
  • 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 … puis restorecon -R -v ; setsebool -P … off ; semanage port -d -t http_port_t -p tcp 8081.

SSH

BesoinCommande
créer une cléssh-keygen -t ed25519 -C "demo@example.test"
installer la clé publiquessh-copy-id demo@srv1.example.test
tester par clé seulessh -o PreferredAuthentications=publickey demo@srv1.example.test
valider la configurationsudo sshd -t
configuration effectivesudo sshd -T | grep -Ei 'permitroot|passwordauth'
appliquersudo 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.

Terminal
sudo cp -p /etc/ssh/sshd_config /root/sshd_config.avantsudo sshd -t && sudo systemctl reload sshd
  • 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é

BesoinCommande
état de l'auditsudo systemctl status auditd
cherchersudo ausearch -m USER_LOGIN -ts today ; sudo ausearch -k <clé>
synthèsesudo aureport --auth --summary
règles activessudo auditctl -l
journal/var/log/audit/audit.log (sensible)
règles persistantesfichiers de /etc/audit/rules.d/ puis sudo augenrules --load
mises à jour disponiblesdnf 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.

Terminal
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 | head
  • Contexte : VM jetable ; options tar à confirmer avec man 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)

SujetRHEL 9RHEL 10
modules dnfprésentsaucun contenu modulaire
profils réseauifcfg et keyfilekeyfile seulement
teamd, dhclientprésents (non relu)retirés
fips-mode-setupprésent (non relu)retiré ; FIPS à l'installation
clés d'hôte SSH—permissions 0600 (au lieu de 0640)
firewalldzoneszones + 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.