Créer des liens matériels et symboliques. Les types de fichiers sous LinuxSous Linus tout est fichier. La première lettre indique le type. Lors d’un ls -l, les droits sur les fichiers sont affichés : drwx------. 3 aline aline 127 Oct 30 12:41 aline Tous les types de fichiers : Type Description - Fichier classique d Dossiere l Lien symbolique c Fichier de type caractère ou character device (type E/S comme /dev/tty, /dev/random) b Fichier de type bloc ou block device (accéder aux pé
[ TAG ] : RH2024
Connexion à un système Linux local et distant. Configurer un compte d’utilisateur pour sshConfigurer un compte d’utilisateur pour utiliser une authentification par clé pour se connecter à des systèmes distants de manière sécurisée, sans mot de passe. # ssh-keygen# ssh-copy-id [email protected]# ssh [email protected] hostname# ssh [email protected] cat /tmp/myFile.txt# ssh [email protected] $ ssh-keygen$ ssh-copy-id [email protected]$ ssh [email protected] hostname$ ssh [email protected]
Modifier des fichiers et se connecter à un système Linux local et distant. Créer et modifier des fichiersCréer et modifier des fichiers texte à partir de la ligne de commande avec l’éditeur Vim. # touch /home/aline/MyFile.txt# touch /home/aline/MyFile0{1..4}.txt # mkdir /rep1# mkdir /rep2 /docs /images# mkdir -p /home/aline/BACKUP_{2024..2026}/Month_{1..12} # vim /home/aline/File.txt# vim /home/aline/File.conf# vi /home/aline/File2.txt# vi /home/aline/File2.conf # r
Pour créer et utiliser un dépôt de conteneurs privé, il est possible de mettre en place une registry de conteneurs locale qui permetra d’héberger ses propres images, de les push ou de les pull comme lorsque des dépôts officiels sont utilisés. Configurer un dépôt de conteneurs privé avec PodmanConfiguration du registryInstaller et Lancer un Conteneur Registry, qui utilise l’image registry de Docker Hub pour créer un dépôt privé sur le port 5000 : # podman run -d -p 5000:5000 --name myregistry doc
LVM gère automatiquement l’extension des volumes logiques pour utiliser efficacement l’espace disponible, mais cela peut conduire à une distribution sur plusieurs disques ou partitions et peut sembler désorganisé si on vérifie avec lsblk. Mais il est cependant possible de forcer manuellement la disposition des LV pour garder un certain contrôle et une “harmonie visuelle” sur la répartition (la maniaquerie…). Répartition des LVIl est assez courant d’observer dans les environnements LVM ce type d
L’objectif ici est de mettre en place une architecture basée sur LVM (Logical Volume Manager) correspondant au schéma ci-dessous. il s’agit d’un exemple fictif (mais possible) permettant de recouvrir plusieurs cas de figure. DescriptionHard Drives Les disques durs physiques : /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde Les disques sont partionnés. Partitions Les partitions de chaque disque physique : Le disque /dev/sda est partitionné en /dev/sda, /dev/sda, /dev/sda Le disque /dev/sdb est p
Vérifier la santé des disques, les commandes diffères en fontion d’un SSD et d’un NVME Conteneurs en tant que serviceCréation de fichiers utilisateur systemd pour les conteneursIl est possible de définir manuellement les services systemd dans le répertoire ~/.config/systemd/user/. La commande podman generate systemd permet de configurer le service systemd afin de créer le conteneur lorsque le service démarre : $ podman generate systemd --name mywebserver [...]ExecStart=/usr/bin/podman start myw
Mappage de port sur des conteneursLa commande podman run -p permet de faire un mappage de port, ici entre le port 13306 de l’hôte et le port 3306 du conteneur db_client_2 : $ podman run -d --name db_client_2 \-e MYSQL_USER=luci \-e MYSQL_PASSWORD=Luci3v1l \-e MYSQL_DATABASE=dev_data \-e MYSQL_ROOT_PASSWORD=Aw3s0m3P4SS! \-v /home/projet/db_data:/var/lib/mysql:Z \-p 13306:3306 \my.com.pany.org/mysql La commande podman port -a affiche tous les mappages de ports de conteneur utilisés : $ podman por
Dans le cas d’un conteneur faisant office de server Web ou de BDD, il sera sans doute nécessaire d’accrocher un stockage persistant ou un accès à d’autres réseaux. Stockage persistant de conteneurPar défaut, toutes les nouvelles données écrite dans le conteneur sont perdues après sa suppression. Pour conserver les données, l’option --volume (-v) permets d’utiliser le système de fichier de l’hôte (et prévoir les bonnes autorisations). Mappage UID/GIDLa commande podman unshare cat permet d’affiche
Certaines images permettent de transmettre des variables d’environnement (généralement elles ne sont pas définies dans les fichiers d’images). Variables d’environnement pour les conteneursLa commande podman run -d my.com.pany.org/rhel8/mariadb-105 exécute une BDD en conteneur, mais ici le conteneur ne démarre pas : $ podman run -d my.com.pany.org/rhel8/mariadb-105 --name db_013897204fb0e7c58a0f1751647cac584256d26c49c43585912361249856de225ae $ podman ps -aCONTAINER ID IMAGE
Podman et Skopeo permettent de gérer les conteneurs et les images de conteuneurs. Utilitaires pour conteneursLe paquet container-tools permet de télécharger, exécuter et comparer des conteneurs (et contient podman et skopeo) : $ dnf install container-tools Information sur le paquet : $ dnf info container-tools Updating Subscription Management repositories.Last metadata expiration check: 0:52:07 ago on Sun 27 Oct 2024 01:21:26 PM +00.Installed PackagesName : container-toolsVersion
Un conteneur est un ensemble de processus isolés du reste du système et permet d’empaqueter des applications en simplifiant leur déploiement et leur gestion. RHEL prend en charge les conteneurs en utilisant : Control Groups (cgroups) pour la gestion des ressources Namespaces pour l’isolement des processus SELinux et Seccomp (Secure Computing Mode) pour appliquer les limites de sécurité Différences entre conteneurs et machines virtuellesLes conteneurs et machines virtuelles ont de nombreux avan
Le framework netfilter est utilisé pour les opérations de trafic réseau (filtrage paquets, traduction d’adresses, traduction de ports).La structure netfilter comprend des hooks (scripts automatiques) pour interagir avec les paquets réseau entrants. Ces hooks sont des routines noyau qui interceptent lesévénements et lancent d’autres routines connexes (règles de pare-feu). Achitecture du pare-feu firewalldnftablesLa structure nftables s’appuie sur netfilter pour appliquer les règles de pare-feu au
Network File System (NFS) est un protocole Internet standard et prend en charge les autorisations Linux natives et les attributs de système de fichiers. Les serveurs NFS exportent les répertoires et les clients NFS montent les répertoires exportés sur un point de montage local existant. Les clients NFS peuvent monter les répertoires exportés de plusieurs façons : Manuellement en utilisant la commande mount De façon persistante au démarrage en configurant des entrées dans le fichier /etc/fstab
Comment configurer et paramétrer les interfaces réseau sur des serveurs. Changer le hostnameLa commande hostname affiche ou modifie temporairement le nom d’hôte : # hostname# hostname my.temporary.hostname Pour le rendre permanent, il faut modifier le fichier /etc/hostname ou utiliser la commande hostnamectl : # hostnamectl hostname my.awesome.hostname.com# hostnamectl statusStatic hostname: my.awesome.hostname.com[...] Résolution DNSLa commande host HOSTNAME permet de tester la connectivité d
Les configurations réseau sont stockées dans le fichier /etc/NetworkManager/system-connections/, et toutes les modifications effectuées avec la commande nmcli y sont ajoutées. Modifier la configuration via le fichier de confIl est possible de directement modifier la configuration réseau directement dans les fichiers nommés /etc/NetworkManager/system-connections/<name>.nmconnection, où name est le nom du périphérique ou de la connexion. NetworkManager utilise les répertoires suivants pour s
NetworkManager surveille et gère de façon dynamique les périphériques et les connexions réseau d’un système et les fichiers de configuration sont stockés dans le répertoire /etc/NetworkManager/system-connections/. Chaque connexion doit avoir un nom ou un ID unique Un périphérique peut avoir plusieurs configurations de connexion et basculer entre elles Une seule connexion peut être active par périphérique Commande nmcliExtrait de l’aide pour nmcli : Commandes Explication nmcli dev status
Comment se renseigner sur les interfaces réseau des serveurs. Informations sur les interfaces réseauLister les interfacesLa commande ip link liste toutes les interfaces réseau disponibles sur le système : # ip link# ip link show Exemple : # ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mod
La synchronisation de l’horloge système est essentielle pour l’analyse des logs. Le protocole NTP est utilisé pour fournir un horodatage correct. Commande timedatectlLa commande timedatectl affiche les paramètres d’horodatage : # timedatectl Local time: Sun 2024-09-22 03:46:12 EDT Universal time: Sun 2024-09-22 07:46:12 UTC RTC time: Sun 2024-09-22 07:46:12 Time zone: America/Toronto (EDT, -0400)System clock synchronized: yes N
Par défaut les logs système sont stockés dams /run/log et sont supprimés après un redémarrage mais il est possible d’y remédier en configurant le service systemd-journald via le fichier /etc/systemd/journald.conf. Fichier /etc/systemd/journald.confLe paramètre Storage du fichier /etc/systemd/journald.conf définit si les logs système doivent être volatils ou persistants : persistent : stocke les logs dans le répertoire persistant /var/log/journal volatile : stocke les logs dans le répertoire vol
Le répertoire /run/log est en RAM, donc en cas d’arrêt du système les données qu’il contient seront perdues mais il est possible de déplacer ses données dans un autre répertoire. Retrouver les logs perdus avec journalctl :La commande journalctl permet de récuperer les logs perdus. # journalctl Afficher les 2 dernières entrées : # journalctl -n 2 Sep 18 15:20:52 SERVER02 systemd[1]: Started Network Manager Script Dispatcher Service.Sep 18 15:21:02 SERVER02 systemd[1]: NetworkManager-dispatcher.s
Le noyau du système et les processus écrivent dans les logs tous les événements se produisant sur le système. Le protocole utilisé est Syslog et les messages qu’il produit sont utilisés par les services systemd-logd et rsyslog. Par défaut les logs ne persistent pas après les redémarrages. Emplacement des logsLes emplacements des logs de syslog : /var/log/messages : authentification, courriers, exécution de tâches planifiées, débogage /var/log/secure : sécurité, authentification /var/log/ma
Récupérer un système due à une configuration incorrecte et définir la cible de démarrage systemd par défaut. Procédure de réinitialisation du systèmePour accéder au systeme en rescue : Redémarrez le système avec un Ctrl+Alt+Del Interrompez le compte à rebours de GRUB en appuyant sur une touche quelconque (sauf Enter) Selectionner (sans valider) le système en RESCUE Appuyez sur e pour modifier l’entrée sélectionnée Chercher la ligne qui commence par linux (commande du noyau) Ajoutez systemd.unit
Comment réinitialiser le mot de passe root lorsque ce dernier est perdu sans support externe (Live CD, montage de la partition /etc/shadow). Procédure de réinitialisation du mot de passeTL;DR1/ Au boot, éditer (avec e) le mode rescue en ajoutant rd.break à la fin de la ligne commençant par Linux 2/ Puis F10 (ou Ctrl+x) pour reboot. 3/ Puis, dans le prompt : switch_root:/# mount -o remount,rw /sysrootswitch_root:/# chroot /sysroot sh-5.1# passwd rootsh-5.1# touch /.autorelabelsh-5.1# exit switch
La création de volumes logiques se fait en plusieurs étapes. Ci-dessous un flux de travail de base pour utiliser LVM sous Linux. Création d’un stockage LVMPréparation des disquesCréez une nouvelle partition LVM avec fdisk : # fdisk /dev/vde Créez une nouvelle partition LVM : n : créer une nouvelle partition type de partition : par défaut primaire, appuyez sur Enter numéro de partition : par défaut le prochain disponible, appuyez sur Enter premier secteur : appuyez sur Enter pour utiliser la va
LVM (Logical Volume Manager) permet de gérer l’espace de stockage de manière plus dynamique et flexible en utilisant les concepts de Physical Volumes, Volume Groups et Logical Volumes. Avantage de LVML’avantages avec LVM est de : redimensionner des volumes sans arrêter les applications ni démonter les systèmes de fichiers de déplacer des données entre des disques d’ajouter facilement de nouveaux disques au pool de stockage Disque physiques - Partitions - PV - VG - LVPéripheriques PhysiquesLes
Le swap (espace d’échange) est une zone de stockage sur le disque dur utilisée par le système pour étendre la capacité de la mémoire vive (RAM). Lorsque la RAM atteint sa limite, le swap permet de déplacer temporairement des données moins utilisées vers le disque dur, libérant ainsi de l’espace en RAM pour les données actuellement nécessaires. Capacité recommandée RAM Swap Swap si hibernation ⩽ 2Go 2 x la RAM 3 x la RAM 2 Go - 8 Go = à la RAM 2 x la RAM 8 Go - 64 Go ⩾ 4 Go 1,5 x la RAM
Exemple de gestion du stockage. Montage et démontage de systèmes de fichiersLa commande lsblk donne les disques existants, ici sdb, sdc et sdd viennent d’être ajoutés et ne sont pas partitionnés : [root@SERVER01 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTSsda 8:0 0 50G 0 disk├─sda1 8:1 0 600M 0 part /boot/efi├─sda2 8:2 0 1G 0 part /boot└─sda3 8:3 0 48.4G 0 part ├─rhel-root 253:0 0 44.5G 0 lvm / └─rhel-swap 253:1
Les commandes mount et unmount permettent monter et démonter un système de fichiers manuellement en utilisant soit le nom du périphérique dans /dev ou avec son UUID. Lister les périphériques disponiblesLa commande lsblk permet de lister les périphériques disponibles : # lsblk La commande lsblk avec les options -f et -p permet de lister les périphériques disponibles et d’afficher leurs UUID : # lsblk -fp Sortie de la commande : NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE
Pour créer un système de fichier on utilise la commande mkfs. Créer un système de fichiersAfficher le types de système de fichiers : # lsblk# file /dev/sdX Monter un système de fichier : # mkfs.ext4 /dev/sdX1# mkfs.fat -F32 /dev/sdX1# mkfs.ntfs /dev/sdX1# mkfs.xfs /dev/sdX1# mkfs.btrfs /dev/sdX1 Afficher les types de système de fichiersPeut se faire avec lsblk -o NAME, FSTYPE et blkid : # lsblk -o NAME,FSTYPENAME FSTYPEsda├─sda1 vfat├─sda2 xfs└─sda3 LVM2_member ├
Pour patitionner un volume, on peut utiliser parted ou fdisk. À moins d’être expert·e parted il vaut mieux utiliser fdisk car les modifications restent en RAM avant la modification finale, alors que pour parted tout se valide au fur et à mesure et peut être compliqué en cas d’erreur. Partitionner un volumeOn veut partitionner un volume vdb. Affichage des informations sur les volumesListing des volumes disponibles : # lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTSvda 252:0 0 10G 0 disk
Ordre pour créer un nouveau volume sur un système : 0 - Plugger son disque1 - Créer une partition2 - Créer un système de fichiers3 - Monter la partition OrdrePlugger un disqueAfficher les informations des volumes : # lsblk # lsblk -fp # lsblk -fs Créer une partitionAfficher les informations des volumes : # lsblk # lsblk -fp # lsblk -fs Partitionner un volume, lire les instructions de l’aide # fdisk /dev/sdX Appliquer la modificationPour s’assurer que le noyau et udev ont bien pris e