Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
elearning:workbooks:redhat:rh134:l104 [2024/09/26 13:24] – created adminelearning:workbooks:redhat:rh134:l104 [2024/10/24 12:57] (Version actuelle) admin
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
  
-Version : **2021.01**+Version : **2024.01**
  
 Dernière mise-à-jour : ~~LASTMOD~~ Dernière mise-à-jour : ~~LASTMOD~~
  
-======LRF607 - Gestion du Durcissement du système======+======RH13405 - Gestion des Disques, des Systèmes de Fichiers et du Swap======
  
 =====Contenu du Module===== =====Contenu du Module=====
  
-  * **LRF607 - Gestion du Durcissement du système**+  * **RH13405 - Gestion des Disques, des Systèmes de Fichiers et du Swap**
     * Contenu du Module     * Contenu du Module
-    * System Hardening Manuel +    * Périphériques de stockage 
-      * Les compilateurs +    * Partitions 
-      * Les paquets +    * Partitionnement 
-      * Les démons et services +      * LAB #1 - Partitionnement de votre Disque avec fdisk 
-      * Les fichiers .rhosts +      * LAB #2 - Modifier les Drapeaux des Partitions avec fdisk 
-      * Les fichiers et les repertoires sans proprietaire +    * Logical Volume Manager (LVM) 
-      * Interdire les connexions de root via le réseau +      * LAB #3 - Volumes Logiques Linéaires 
-      * Limiter le delai d'inactivite d'une session shell +        * Physical Volume (PV) 
-      * Renforcer la securite d'init +        * Volume Group (VG) et Physical Extent (PE) 
-        * Les Distributions SysVInit +        * Logical Volumes (LV) 
-        * Les Distributions Upstart +      * LAB #4 - Étendre un Volume Logique à Chaud 
-      * Renforcer la sécurité du Noyau +      * LAB #5 - Snapshots 
-      La commande sysctl +      * LAB #6 - Suppression des Volumes 
-    * LAB #1 - System Hardening à l'aide de l'outil Bastille+      * LAB #7 - Volumes Logiques en Miroir 
 +      * LAB #8 - Modifier les Attributs LVM 
 +      * LAB #9 - Volumes Logiques en Bandes 
 +      * LAB #10 - Gérer les Métadonnées 
 +    * Raid Logiciel 
 +      * Concepts RAID 
 +        * Disques en miroir 
 +        * Bandes de données 
 +      * Types de RAID 
 +        * RAID 0 - Concaténation 
 +        * RAID 0 - Striping 
 +        * RAID 1 - Miroir 
 +        * RAID 1+0 - Striping en Miroir 
 +        * RAID 2 - Miroir avec Contrôle d'Erreurs 
 +        * RAID 3 et 4 - Striping avec Parité 
 +        * RAID 5 - Striping avec Parité Distribuée 
 +        * Au délà de RAID 5 
 +      * LAB #11 - Mise en Place du RAID 5 Logiciel 
 +        11.1 - Préparer le disque 
 +        * 11.2 - Créer une Unité RAID 
 +        * 11.3 - Remplacer une Unité Défaillante 
 +    * LAB #12 - Travailler avec Stratis 
 +      * 12.1 - Présentation 
 +        * Concepts clés de Stratis 
 +        * Gestion simplifiée 
 +        * Avantages de Stratis 
 +        * Stratis vs ZFS/Btrfs 
 +      * 12.2 - Travailler avec Stratis 
 +        * Installation 
 +        * Création d'un Pool 
 +        * Création d'un Système de Fichiers 
 +        * Montage du System de Fichiers 
 +        * Croissance Dynamique du Système de Fichiers 
 +        * Création d'un Snapshot 
 +        * Suppression des Systèmes de Fichiers 
 +    * Systèmes de Fichiers Journalisés
       * Présentation       * Présentation
-      * Installation +      * LAB #13 - Ext3 
-      Utilisation +        13.1 - Gestion d'Ext3 
-    LAB #2 - Mise en place de SELinux pour sécuriser le serveur +        13.2 - Convertir un Système de Fichiers Ext3 en Ext2 
-      Introducton +        13.3 - Convertir un Système de Fichiers Ext2 en Ext3 
-      Définitions +        13.4 - Placer le Journal sur un autre Partition 
-        * Security Context +        * 13.5 - Modifier la Fréquence de Vérification du Système de Fichiers Ext3 
-        Domains et Types +      LAB #14 - Ext4 
-        * Roles +        * 14.1 - Créer un Système de Fichiers Ext4 
-        * Politiques de Sécurité +        * 14.2 - Ajouter une Étiquette au Système de Fichiers Ext4 
-        * Langage de Politiques +        * 14.3 - Convertir un Système de Fichiers Ext3 en Ext4 
-          allow +      LAB #15 - XFS 
-          type +        15.1 - Créer un Système de Fichiers XFS 
-        * type_transition +        * 15.2 - Ajouter une Étiquette au Système de Fichiers XFS 
-        Décisions de SELinux +      Autres Systèmes de Fichiers 
-          Décisions d'Accès +        ReiserFS 
-          Décisions de Transition +        JFS 
-        * Commandes SELinux +        * Btrfs 
-        Les Etats de SELinux +      * Comparaison des Commandes par Système de Fichiers 
-        Booléens +    LAB #16 - Système de Fichiers ISO 
-    * LAB #Travailler avec SELinux +      16.1 - La Commande mkisofs 
-      * Copier et Déplacer des Fichiers +    * LAB #17 Systèmes de Fichiers Chiffrés 
-      Vérifier les SC des Processus +      * 17.1 - Créer un Système de Fichiers Chiffré avec LUKS 
-      Visualiser la SC d'un Utilisateur +        Présentation 
-      Vérifier la SC d'un fichier +        Mise en Place 
-      Troubleshooting SELinux +        Ajouter une deuxième Passphrase 
-        * La commande chcon +        Supprimer une Passphrase 
-      * La commande restorecon +        * Supprimer LUKS 
-      * Le fichier /.autorelabel +    * LAB #18 - Le Swap 
-      * La commande semanage +      * 18.1 - Taille du swap 
-      * La commande audit2allow+      * 18.2 - Partitions de swap 
 +      * 18.3 - La Commande swapon 
 +      * 18.4 - La Commande swapoff 
 +      * 18.5 - Créer un Fichier de Swap
  
-=====System Hardening Manuel=====+=====Périphériques de stockage=====
  
-====Les compilateurs====+Les unités de stockage sous Linux sont référencées par un des fichiers se trouvant dans le répertoire **/dev** :
  
-Afin d'empêcher un pirate de créer des exécutables sur le serveur vous devez modifier les permissions sur les compilateurs éventuellement présents afin que seulement root puisse les exécuter.+  * hd[a-d
 +    * Les disques IDE et les lecteurs ATAPI 
 +  * sd[a-z] 
 +    * Les disques SCSI et SATA 
 +  * mmcblk[0-7] 
 +    * Les cartes SD/MMC 
 +  * scd[0-7] 
 +    * Les CDRoms SCSI 
 +  * xd[a-d] 
 +    * Les premiers disques sur IBM XT 
 +  * fd[0-7] 
 +    * Les lecteurs de disquettes 
 +  * st[0-7] 
 +    * Les lecteurs de bandes SCSI/SATA qui **supportent** le rembobinage 
 +  * nst[0-7] 
 +    * Les lecteurs de bandes SCSI/SATA qui ne supportent **pas** le rembobinage 
 +  * ht[0-7] 
 +    * Les lecteurs de bandes PATA qui **supportent** le rembobinage 
 +  * nht[0-7] 
 +    * Les lecteurs de bandes PATA qui ne supportent **pas** le rembobinage 
 +  * rmt8, rmt16, tape-d, tape-reset 
 +    * Les lecteurs QIC-80 
 +  * ram[0-15] 
 +    * Les disques virtuelsIls sont supprimés à l'extinction de la machine. Un de ces disques est utilisé par le système pour monter l'image d'un disque racine défini par le fichier **initrd** au démarrage de la machine 
 +  * Périphériques **loop** 
 +    * Il existe 16 unités loop qui sont utilisés pour accèder en mode bloc à un système de fichiers contenu dans un fichier, par exemple, une image **iso** 
 +  * md[x] 
 +    * Un volume **RAID** logiciel 
 +  * vg[x] 
 +    * Un groupe de volumes 
 +  * lv[x] 
 +    * Un volume logique
  
-====Les paquets====+=====Partitions=====
  
-Il convient dans ce cas de passer en revue la liste des paquets installes puis de supprimer ceux qui sont juges être inutiles :+Un PC comportent en règle générale 2 **contrôleurs** de disque, chacun capable de gérer 2 disques, un **maître** et un **esclave**. Les disques attachés à ces contrôleurs comportent des noms différents pour pouvoir les distinguer : 
 + 
 +  * Contrôleur 0 
 +    * Maître 
 +      * **hda** - disque IDE 
 +      * **sda** - disque SATA ou SCSI 
 +    * Esclave 
 +      * **hdb** - disque IDE 
 +      * **sdb** - disque SATA ou SCSI 
 +  * Contrôleur 1 
 +    * Maître 
 +      * **hdc** - disque IDE 
 +      * **sdc** - disque SATA ou SCSI 
 +    * Esclave 
 +      * **hdd** - disque IDE 
 +      * **sdd** - disque SATA ou SCSI 
 + 
 +Un disque peut comporter trois types de partitions : 
 + 
 +  * **Partitions primaires**, 
 +    * Maximum de **4**. En effet, la Table des Partitions est grande de 64 octets. Il faut 16 octets pour codés une partition. 
 +  * **Partitions Etendues**, 
 +    * Généralement une seule partition étendue par disque. Elle contient des **Lecteurs Logiques** aussi appelés des partitions, 
 +  * **Lecteurs Logiqiques**. 
 + 
 +Les 4 partitions primaires sont numérotées de 1 à 4. Par exemple : 
 + 
 +  * **hda1**, **hda2**, **hda3** et **hda4** pour le premier disque **IDE** sur le premier contrôleur de disque, 
 +  * **sda1**, **sda2**, **sda3** et **sda4** pour le premier disque **SCSI** ou **SATA** sur le premier contrôleur de disque.  
 + 
 +{{free:disque.png|}} 
 + 
 +Une partition étendue prend la place d'une partition primaire et les lecteurs logiques qui s'y trouvent commencent à partir de **hda5** ou de **sda5**. 
 + 
 +Pour clarifier ceci, considérons un disque **SATA** contenant deux partitions primaires, une seule partition étendue et 3 lecteurs logiques. Dans ce cas, les deux premières partitions sont **sda1** et **sda2**, la partition étendue prend la place de la troisième partition primaire, la **sda3** et s'appelle ainsi tandis que la quatrième partition primaire est inexistante.  
 + 
 +Les lecteurs logiques commençant à **sda5**, nous obtenons la liste de partitions suivante : sda1, sda2, sda5, sda6, sda7. Notez que la sda3 ne peut pas être utilisée en tant que partition car elle est cachée par les lecteurs sda5, sda6 et sda7. 
 + 
 +{{free:disques1.png|}} 
 + 
 +Le nombre de partitions sur un disque est limité : 
 + 
 +  * **IDE**, 
 +    * Jusqu'à **63**, 
 +  * **SCSI**, 
 +    * Jusqu'à **15**, 
 +  * **Disques utilisant l'API libata**, 
 +    * Jusqu'à **15**. 
 + 
 +<WRAP center round important 60%> 
 +**Important** : Ces limites peuvent être dépassées en utilisant la gestion **LVM** (//Logical Volume Management//). 
 +</WRAP> 
 + 
 +=====Partitionnement===== 
 + 
 +Le schéma de partitionnement **Master Boot Record** (MBR) est la norme sur les systèmes qui utilisent le BIOS. Ce schéma prend en charge un maximum de quatre partitions primaires. Sur les systèmes Linux, avec des partitions étendues et logiques, vous pouvez créer jusqu'à 15 partitions. Avec des systèmes 32 bits, les disques partitionnés avec MBR peuvent avoir une taille allant jusqu'à 2 TiB. 
 + 
 +La limite de 2 TiB pour la taille des disques et des partitions est désormais une limite courante et restrictive. Par conséquent, le schéma MBR est remplacé par le système de partitionnement **GUID Partition Table** (GPT). 
 + 
 +Pour les systèmes qui utilisent le micrologiciel UEFI (Unified Extensible Firmware Interface), GPT est la norme pour le partitionnement des disques et répond aux limites du schéma MBR. GPT offre un maximum de 128 partitions au maximum. Le schéma GPT alloue 64 bits pour les adresses de blocs logiques, afin de prendre en charge des partitions et des disques allant jusqu'à huit zébibytes (ZiB) ou huit milliards de tébibytes (TiB). 
 + 
 +Le partitionnement GPT offre des fonctionnalités et des avantages supplémentaires par rapport au MBR. GPT utilise un identifiant unique (GUID) pour identifier chaque disque et chaque partition. GPT rend la table de partition redondante avec le GPT primaire en tête de disque et un GPT secondaire de sauvegarde à la fin du disque. GPT utilise une somme de contrôle pour détecter les erreurs dans l'en-tête GPT et la table de partition. 
 + 
 +====LAB #1 - Partitionnement de votre Disque sous RedHat 9 avec fdisk==== 
 + 
 +Pour procéder au partitionnement de votre disque ou de vos disques, RedHat 9 possède l'outil dénommé **fdisk**. 
 + 
 +Lancez fdisk en fournissant en argument le fichier de référence de votre premier disque dur, par exemple :
  
 <code> <code>
-[root@centos7 ~]# rpm -qa | more +[root@redhat9 ~]# fdisk /dev/sdb
-libtalloc-2.1.9-1.el7.x86_64 +
-gnome-contacts-3.22.1-1.el7.x86_64 +
-lrzsz-0.12.20-36.el7.x86_64 +
-NetworkManager-team-1.8.0-11.el7_4.x86_64 +
-opus-1.0.2-6.el7.x86_64 +
-libsss_certmap-1.15.2-50.el7_4.11.x86_64 +
-m17n-db-1.6.4-3.el7.noarch +
-expat-2.1.0-10.el7_3.x86_64 +
-gvfs-mtp-1.30.4-3.el7.x86_64 +
-hypervfcopyd-0-0.30.20161211git.el7.x86_64 +
-perl-parent-0.225-244.el7.noarch +
-libreport-centos-2.1.11-38.el7.centos.x86_64 +
-pixman-0.34.0-1.el7.x86_64 +
-alsa-plugins-pulseaudio-1.1.1-1.el7.x86_64 +
-libreoffice-graphicfilter-5.0.6.2-15.el7_4.x86_64 +
-libreport-rhel-anaconda-bugzilla-2.1.11-38.el7.centos.x86_64 +
-libXext-1.3.3-3.el7.x86_64 +
-libtool-ltdl-2.4.2-22.el7_3.x86_64 +
-NetworkManager-ppp-1.8.0-11.el7_4.x86_64 +
-osinfo-db-20170423-2.el7.noarch +
-fftw-libs-double-3.3.3-8.el7.x86_64 +
-kernel-tools-libs-3.10.0-693.21.1.el7.x86_64 +
-e2fsprogs-libs-1.42.9-10.el7.x86_64 +
---More-- +
-</code>+
  
-====Les démons et services====+Welcome to fdisk (util-linux 2.37.4). 
 +Changes will remain in memory only, until you decide to write them. 
 +Be careful before using the write command.
  
-Il convient dans ce cas de passer en revue la liste des démons et services actives puis de supprimer ceux qui sont juges être inutiles;+Device does not contain a recognized partition table. 
 +Created a new DOS disklabel with disk identifier 0x23a56c2e.
  
-  * ps aux +Command (m for help):  
-  * chkconfig --list +</code> 
-  systemctl list-unit-files+ 
 +Tapez ensuite la lettre **m*puis <key>Entrée</key> pour obtenir le menu :
  
 <code> <code>
-[root@centos7 ~]# ps aux | more +Command (m for help): m 
-USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND + 
-root          0.0  0.9 128172  4768 ?        Ss   14:58   0:11 /usr/lib/systemd/systemd --swit +Help: 
-ched-root --system --deserialize 21 + 
-root          0.0  0.0      0     0 ?        S    14:58   0:00 [kthreadd] +  DOS (MBR) 
-root          0.0  0.0      0     0 ?        S    14:58   0:13 [ksoftirqd/0] +     toggle a bootable flag 
-root          0.0  0.0      0     0 ?        S<   14:58   0:00 [kworker/0:0H] +     edit nested BSD disklabel 
-root          0.0  0.0      0     0 ?        S    14:58   0:00 [kworker/u2:0] +     toggle the dos compatibility flag 
-root          0.0  0.0      0     0 ?        S    14:58   0:00 [migration/0] + 
-root          0.0  0.0      0     0 ?        S    14:58   0:00 [rcu_bh] +  Generic 
-root          0.0  0.0      0     0 ?        S    14:58   0:09 [rcu_sched] +   d   delete a partition 
-root        10  0.0  0.0      0     0 ?        S    14:58   0:00 [watchdog/0] +   F   list free unpartitioned space 
-root        12  0.0  0.0      0     0 ?        S    14:58   0:00 [kdevtmpfs] +     list known partition types 
-root        13  0.0  0.0      0     0 ?        S<   14:58   0:00 [netns] +   n   add a new partition 
-root        14  0.0  0.0      0     0 ?        S    14:58   0:00 [khungtaskd] +   p   print the partition table 
-root        15  0.0  0.0      0     0 ?        S<   14:58   0:00 [writeback] +   t   change a partition type 
-root        16  0.0  0.0      0     0 ?        S<   14:58   0:00 [kintegrityd] +   v   verify the partition table 
-root        17  0.0  0.0      0     0 ?        S<   14:58   0:00 [bioset] +   i   print information about a partition 
-root        18  0.0  0.0      0     0 ?        S<   14:58   0:00 [kblockd] + 
-root        19  0.0  0.0      0     0 ?        S<   14:58   0:00 [md] +  Misc 
-root        25  0.0  0.0      0     0 ?        S    14:58   0:03 [kswapd0] +     print this menu 
-root        26  0.0  0.0      0     0 ?        SN   14:58   0:00 [ksmd] +   u   change display/entry units 
-root        27  0.0  0.0      0     0 ?        S<   14:58   0:00 [crypto] +     extra functionality (experts only) 
-root        35  0.0  0.0      0     0 ?        S<   14:58   0:00 [kthrotld] + 
---More--+  Script 
 +     load disk layout from sfdisk script file 
 +     dump disk layout to sfdisk script file 
 + 
 +  Save & Exit 
 +     write table to disk and exit 
 +     quit without saving changes 
 + 
 +  Create a new label 
 +   g   create a new empty GPT partition table 
 +     create a new empty SGI (IRIX) partition table 
 +     create a new empty DOS partition table 
 +     create a new empty Sun partition table 
 + 
 + 
 +Command (m for help):
 </code> </code>
 +
 +Pour créer une nouvelle partition, vous devez utiliser la commande **n**.
 +
 +Créez donc les partitions suivantes sur votre disque :
 +
 +^ Partition ^ Type ^ Taille de la Partition ^
 +| /dev/sdb1 | Primaire |  100 Mo  |
 +| /dev/sdb2 | Primaire |  100 Mo  |
 +| /dev/sdb3 | Primaire |  100 Mo  |
 +| /dev/sdb4 | Extended | Du premier secteur disponible au dernier secteur du disque |
 +| /dev/sdb5 | Logique |  500 Mo  |
 +| /dev/sdb6 | Logique |  200 Mo  |
 +| /dev/sdb7 | Logique |  300 Mo  |
 +| /dev/sda8 | Logique |  500 Mo  |
 +| /dev/sdb9 | Logique |  400 Mo  |
 +| /dev/sdb10 | Logique |  500 Mo  |
 +| /dev/sdb11 | Logique |  500 Mo  |
 +| /dev/sdb12 | Logique |  200 Mo  |
 +
 +Créez d'abord les partitions primaires :
  
 <code> <code>
-[root@centos7 ~]# chkconfig --list+Command (m for help): n 
 +Partition type 
 +     primary (0 primary, 0 extended, 4 free) 
 +     extended (container for logical partitions) 
 +Select (default p): 
  
-NoteThis output shows SysV services only and does not include native +Using default response p. 
-      systemd services. SysV configuration data might be overridden by native +Partition number (1-4, default 1):  
-      systemd configuration.+First sector (2048-67108863, default 2048):  
 +Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-67108863, default 67108863): +100M
  
-      If you want to list systemd services use 'systemctl list-unit-files'+Created a new partition 1 of type 'Linuxand of size 100 MiB.
-      To see services enabled on particular target use +
-      'systemctl list-dependencies [target]'.+
  
-livesys        0:off 1:off 2:off 3:on 4:on 5:on 6:off +Command (m for help)
-livesys-late    0:off 1:off 2:off 3:on 4:on 5:on 6:off +Partition type 
-netconsole      0:off 1:off 2:off 3:off 4:off 5:off 6:off +     primary (primary, 0 extended, 3 free) 
-network        0:off 1:off 2:off 3:off 4:off 5:off 6:off +     extended (container for logical partitions) 
-snortd          0:off 1:off 2:on 3:on 4:on 5:on 6:off+Select (default p) 
 + 
 +Using default response p. 
 +Partition number (2-4, default 2) 
 +First sector (206848-67108863, default 206848):  
 +Last sector, +/-sectors or +/-size{K,M,G,T,P} (206848-67108863, default 67108863)+100M 
 + 
 +Created a new partition of type 'Linux' and of size 100 MiB. 
 + 
 +Command (m for help)n 
 +Partition type 
 +     primary (2 primary, extended, free) 
 +     extended (container for logical partitions) 
 +Select (default p) 
 + 
 +Using default response p. 
 +Partition number (3,4, default 3) 
 +First sector (411648-67108863, default 411648) 
 +Last sector, +/-sectors or +/-size{K,M,G,T,P} (411648-67108863, default 67108863)+100M 
 + 
 +Created a new partition of type 'Linux' and of size 100 MiB. 
 + 
 +Command (m for help)
 </code> </code>
 +
 +Créez ensuite la partition étendue :
  
 <code> <code>
-[root@centos7 ~]# systemctl list-unit-files +Command (m for help): n 
-UNIT FILE                                     STATE    +Partition type 
-proc-sys-fs-binfmt_misc.automount             static   +     primary (3 primary, 0 extended, 1 free) 
-dev-hugepages.mount                           static   +   e   extended (container for logical partitions) 
-dev-mqueue.mount                              static   +Select (default e):  
-proc-fs-nfsd.mount                            static   + 
-proc-sys-fs-binfmt_misc.mount                 static   +Using default response e
-sys-fs-fuse-connections.mount                 static   +Selected partition 4 
-sys-kernel-config.mount                       static   +First sector (616448-67108863, default 616448):  
-sys-kernel-debug.mount                        static   +Last sector, +/-sectors or +/-size{K,M,G,T,P} (616448-67108863, default 67108863):  
-tmp.mount                                     enabled  + 
-var-lib-nfs-rpc_pipefs.mount                  static   +Created a new partition 4 of type 'Extended' and of size 31.7 GiB
-brandbot.path                                 disabled + 
-cups.path                                     enabled  +Command (m for help):
-systemd-ask-password-console.path             static   +
-systemd-ask-password-plymouth.path            static   +
-systemd-ask-password-wall.path                static   +
-session-33.scope                              static   +
-abrt-ccpp.service                             enabled  +
-abrt-oops.service                             enabled  +
-abrt-pstoreoops.service                       disabled +
-abrt-vmcore.service                           enabled  +
-abrt-xorg.service                             enabled  +
-abrtd.service                                 enabled  +
-lines 1-23+
 </code> </code>
  
-====Les fichiers .rhosts====+Créez maintenant les autres partitions l'une après l'autre :
  
-Le systeme rhosts presente une faille de securite importante pour un serveur LinuxPour cette raisonil convient de supprimer les fichiers **.rhosts** des utilisateurs. Utilisez la commande suivante:+<code> 
 +Command (m for help): n 
 +All primary partitions are in use. 
 +Adding logical partition 5 
 +First sector (618496-67108863default 618496):  
 +Last sector, +/-sectors or +/-size{K,M,G,T,P} (618496-67108863, default 67108863)+500M
  
-  # find / -name "\.rhosts" -exec rm -f \{\} \; [Entree]+Created a new partition 5 of type 'Linux' and of size 500 MiB.
  
-====Les fichiers et les repertoires sans proprietaire====+Command (m for help): n 
 +All primary partitions are in use. 
 +Adding logical partition 6 
 +First sector (1644544-67108863, default 1644544):  
 +Last sector, +/-sectors or +/-size{K,M,G,T,P} (1644544-67108863, default 67108863): +200M
  
-Afin de dresser la liste des fichiers et des groupes sans proprietaires sur le serveur, il convient d'utiliser les deux commandes suivantes:+Created a new partition 6 of type 'Linux' and of size 200 MiB.
  
-  # find / -nouser -exec ls -l \{\\; 2> sans_pro.txt [Entree]+Command (m for help): n 
 +All primary partitions are in use. 
 +Adding logical partition 7 
 +First sector (2056192-67108863, default 2056192):  
 +Last sector, +/-sectors or +/-size{K,M,G,T,P(2056192-67108863, default 67108863): +300M
  
-  # find / -nogroup -exec ls -l \{\} \; 2>> sans_pro.txt[Entree]+Created a new partition 7 of type 'Linux' and of size 300 MiB.
  
-Ces commandes produiront une liste éventuelle dans le fichier **sans_pro.txt**.+Command (m for help): n 
 +All primary partitions are in use. 
 +Adding logical partition 8 
 +First sector (2672640-67108863, default 2672640):  
 +Last sector, +/-sectors or +/-size{K,M,G,T,P} (2672640-67108863, default 67108863): +500M
  
-L'examen de cette liste pourrait dévoiler des anomalies au quel cas il conviendrait de:+Created a new partition 8 of type 'Linux' and of size 500 MiB.
  
-  * modifier le propriétaire a root +Command (m for help): n 
-  * modifier le groupe a root +All primary partitions are in use. 
-  * modifier les permissions a 700+Adding logical partition 9 
 +First sector (3698688-67108863, default 3698688):  
 +Last sector, +/-sectors or +/-size{K,M,G,T,P} (3698688-67108863, default 67108863): +400M
  
-====Interdire les connexions de root via le reseau====+Created a new partition 9 of type 'Linux' and of size 400 MiB.
  
-Le fichier de configuration des connexions de root est **/etc/securetty** :+Command (m for help): n 
 +All primary partitions are in use. 
 +Adding logical partition 10 
 +First sector (4519936-67108863, default 4519936):  
 +Last sector, +/-sectors or +/-size{K,M,G,T,P} (4519936-67108863, default 67108863): +500M 
 + 
 +Created a new partition 10 of type 'Linux' and of size 500 MiB. 
 + 
 +Command (m for help): n 
 +All primary partitions are in use. 
 +Adding logical partition 11 
 +First sector (5545984-67108863, default 5545984):  
 +Last sector, +/-sectors or +/-size{K,M,G,T,P} (5545984-67108863, default 67108863): +500M 
 + 
 +Created a new partition 11 of type 'Linux' and of size 500 MiB. 
 + 
 +Command (m for help): n 
 +All primary partitions are in use. 
 +Adding logical partition 12 
 +First sector (6572032-67108863, default 6572032):  
 +Last sector, +/-sectors or +/-size{K,M,G,T,P} (6572032-67108863, default 67108863): +200M 
 + 
 +Created a new partition 12 of type 'Linux' and of size 200 MiB. 
 + 
 +Command (m for help): 
 +</code> 
 + 
 +Tapez ensuite la lettre **p** puis <key>Entrée</key> pour visualiser la nouvelle table des partitions. Vous obtiendrez un résultat similaire à celui-ci :
  
 <code> <code>
-[root@centos7 ~]# cat /etc/securetty +Command (m for help): p 
-console +Disk /dev/sdb: 32 GiB, 34359738368 bytes, 67108864 sectors 
-vc/+Disk model: QEMU HARDDISK    
-vc/2 +Units: sectors of * 512 = 512 bytes 
-vc/3 +Sector size (logical/physical): 512 bytes / 512 bytes 
-vc/4 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
-vc/5 +Disklabel type: dos 
-vc/6 +Disk identifier: 0x23a56c2e 
-vc/7 + 
-vc/8 +Device     Boot   Start      End  Sectors  Size Id Type 
-vc/9 +/dev/sdb1          2048   206847   204800  100M 83 Linux 
-vc/10 +/dev/sdb2        206848   411647   204800  100M 83 Linux 
-vc/11 +/dev/sdb3        411648   616447   204800  100M 83 Linux 
-tty1 +/dev/sdb4        616448 67108863 66492416 31.7G  5 Extended 
-tty2 +/dev/sdb5        618496  1642495  1024000  500M 83 Linux 
-tty3 +/dev/sdb6       1644544  2054143   409600  200M 83 Linux 
-tty4 +/dev/sdb7       2056192  2670591   614400  300M 83 Linux 
-tty5 +/dev/sdb8       2672640  3696639  1024000  500M 83 Linux 
-tty6 +/dev/sdb9       3698688  4517887   819200  400M 83 Linux 
-tty7 +/dev/sdb10      4519936  5543935  1024000  500M 83 Linux 
-tty8 +/dev/sdb11      5545984  6569983  1024000  500M 83 Linux 
-tty9 +/dev/sdb12      6572032  6981631   409600  200M 83 Linux 
-tty10 + 
-tty11 +Command (m for help): 
-ttyS0 +
-ttysclp0 +
-sclp_line0 +
-3270/tty1 +
-hvc0 +
-hvc1 +
-hvc2 +
-hvc3 +
-hvc4 +
-hvc5 +
-hvc6 +
-hvc7 +
-hvsi0 +
-hvsi1 +
-hvsi2 +
-xvc0+
 </code> </code>
  
-Afin d'empêcher une connexion de root //directement// via le réseau et donc d'obliger une connexion en utilisant un compte d'utilisateur normal avant de passer en root grâce à la commande **su**, ce fichier ne doit **pas** contenir des entrees du type **ttysX** ou X = 0,1,2 etc.+Ecrivez la table des partitions sur disque et exécutez la commande **partprobe** :
  
-====Limiter le delai d'inactivite d'une session shell====+<code> 
 +Command (m for help): w 
 +The partition table has been altered. 
 +Calling ioctl() to re-read partition table. 
 +Syncing disks.
  
-Une session de shell laissee ouverte inutilement et d'une maniere sans surveillance est un risque de securite. Verifiez donc le contenu du fichier **/etc/profile** :+[root@redhat9 ~]# partprobe 
 +[root@redhat9 ~]# 
 +</code> 
 + 
 +Lancez fdisk puis tapez ensuite la lettre **p** puis <key>Entrée</key> pour visualiser la table des partitions actuelle :
  
 <code> <code>
-[root@centos7 ~]# cat /etc/profile +[root@redhat9 ~]# fdisk /dev/sdb
-# /etc/profile+
  
-# System wide environment and startup programs, for login setup +Welcome to fdisk (util-linux 2.37.4). 
-# Functions and aliases go in /etc/bashrc+Changes will remain in memory only, until you decide to write them. 
 +Be careful before using the write command.
  
-# It's NOT a good idea to change this file unless you know what you 
-# are doing. It's much better to create a custom.sh shell script in 
-# /etc/profile.d/ to make custom changes to your environment, as this 
-# will prevent the need for merging in future updates. 
  
-pathmunge () { +Command (m for help): p 
-    case ":${PATH}:" in +Disk /dev/sdb32 GiB, 34359738368 bytes, 67108864 sectors 
-        *:"$1":*) +Disk modelQEMU HARDDISK    
-            ;; +Unitssectors of 1 * 512 = 512 bytes 
-        *+Sector size (logical/physical): 512 bytes / 512 bytes 
-            if [ "$2" = "after" ] ; then +I/O size (minimum/optimal): 512 bytes / 512 bytes 
-                PATH=$PATH:$1 +Disklabel typedos 
-            else +Disk identifier0x23a56c2e
-                PATH=$1:$PATH +
-            fi +
-    esac +
-}+
  
 +Device     Boot   Start      End  Sectors  Size Id Type
 +/dev/sdb1          2048   206847   204800  100M 83 Linux
 +/dev/sdb2        206848   411647   204800  100M 83 Linux
 +/dev/sdb3        411648   616447   204800  100M 83 Linux
 +/dev/sdb4        616448 67108863 66492416 31.7G  5 Extended
 +/dev/sdb5        618496  1642495  1024000  500M 83 Linux
 +/dev/sdb6       1644544  2054143   409600  200M 83 Linux
 +/dev/sdb7       2056192  2670591   614400  300M 83 Linux
 +/dev/sdb8       2672640  3696639  1024000  500M 83 Linux
 +/dev/sdb9       3698688  4517887   819200  400M 83 Linux
 +/dev/sdb10      4519936  5543935  1024000  500M 83 Linux
 +/dev/sdb11      5545984  6569983  1024000  500M 83 Linux
 +/dev/sdb12      6572032  6981631   409600  200M 83 Linux
  
-if [ -x /usr/bin/id ]; then +Command (m for help): 
-    if [ -z "$EUID" ]; then +</code>
-        # ksh workaround +
-        EUID=`/usr/bin/id -u` +
-        UID=`/usr/bin/id -ru` +
-    fi +
-    USER="`/usr/bin/id -un`" +
-    LOGNAME=$USER +
-    MAIL="/var/spool/mail/$USER" +
-fi+
  
-# Path manipulation +Pour supprimer une partition, utilisez la commande **d** puis <key>Entrée</key>. fdisk vous demandera le numéro de la partition à supprimer, par exemple :
-if [ "$EUID" = "0" ]; then +
-    pathmunge /usr/sbin +
-    pathmunge /usr/local/sbin +
-else +
-    pathmunge /usr/local/sbin after +
-    pathmunge /usr/sbin after +
-fi+
  
-HOSTNAME=`/usr/bin/hostname 2>/dev/null` +<code
-HISTSIZE=1000 +Command (m for help): d 
-if [ "$HISTCONTROL" = "ignorespace" ] ; then +Partition number (1-12, default 12): 12
-    export HISTCONTROL=ignoreboth +
-else +
-    export HISTCONTROL=ignoredups +
-fi+
  
-export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL+Partition 12 has been deleted.
  
-# By default, we want umask to get set. This sets it for login shell +Command (m for help): p 
-# Current threshold for system reserved uid/gids is 200 +Disk /dev/sdb: 32 GiB, 34359738368 bytes, 67108864 sectors 
-# You could check uidgid reservation validity in +Disk model: QEMU HARDDISK    
-# /usr/share/doc/setup-*/uidgid file +Units: sectors of 1 512 = 512 bytes 
-if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then +Sector size (logical/physical): 512 bytes 512 bytes 
-    umask 002 +I/O size (minimum/optimal): 512 bytes 512 bytes 
-else +Disklabel type: dos 
-    umask 022 +Disk identifier: 0x23a56c2e
-fi+
  
-for i in /etc/profile.d/*.sh ; do +Device     Boot   Start      End  Sectors  Size Id Type 
-    if [ -r "$i" ]; then +/dev/sdb1          2048   206847   204800  100M 83 Linux 
-        if [ "${-#*i}" != "$-" ]; then  +/dev/sdb2        206848   411647   204800  100M 83 Linux 
-            "$i" +/dev/sdb3        411648   616447   204800  100M 83 Linux 
-        else +/dev/sdb4        616448 67108863 66492416 31.7G  5 Extended 
-            . "$i" >/dev/null +/dev/sdb5        618496  1642495  1024000  500M 83 Linux 
-        fi +/dev/sdb6       1644544  2054143   409600  200M 83 Linux 
-    fi +/dev/sdb7       2056192  2670591   614400  300M 83 Linux 
-done+/dev/sdb8       2672640  3696639  1024000  500M 83 Linux 
 +/dev/sdb9       3698688  4517887   819200  400M 83 Linux 
 +/dev/sdb10      4519936  5543935  1024000  500M 83 Linux 
 +/dev/sdb11      5545984  6569983  1024000  500M 83 Linux
  
-unset i +Command (m for help):
-unset -f pathmunge+
 </code> </code>
  
-A ce fichier doivent etre ajoutées les deux lignes suivantes:+A ce stade, la partition n'a **pas** été réellement supprimée. En effet, vous avez la possibilité de sortir de fdisk en utilisant la commande **q**. 
  
-<file> +Tapez donc q pour sortir de fdisk puis relancez fdisk. Vous obtiendrez un résultat similaire à celui-ci :
-Readonly TMOUT=300 +
-Export TMOUT +
-</file>+
  
-Par cette action, vous définissez le délai d’inactivité d'une session shell a une durée de 5 minutes.+<code> 
 +Command (m for help): q
  
-Dernièrement, afin de se protéger contre des permissions trop permissives lors de la création de fichiers et de répertoires, il convient de passer la valeur d'**umask** à **077** dans le fichier **/etc/profile**.+[root@redhat9 ~]# fdisk /dev/sdb
  
-====Renforcer la securite d'init====+Welcome to fdisk (util-linux 2.37.4). 
 +Changes will remain in memory only, until you decide to write them. 
 +Be careful before using the write command.
  
-===Les Distributions SysVInit=== 
  
-Le fichier **/etc/inittab** est utilise pour configurer le démarrage de votre serveur. +Command (m for help): p 
 +Disk /dev/sdb: 32 GiB, 34359738368 bytes, 67108864 sectors 
 +Disk model: QEMU HARDDISK    
 +Units: sectors of 1 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 +Disklabel type: dos 
 +Disk identifier: 0x23a56c2e
  
-La première modification à effectuer est de spécifier le niveau d’exécution par défaut a 3 au lieu de 5. Ceci permet de ne pas lancer les sessions graphiques sur une serveur de production. Cherchez donc la ligne suivante:+Device     Boot   Start      End  Sectors  Size Id Type 
 +/dev/sdb1          2048   206847   204800  100M 83 Linux 
 +/dev/sdb2        206848   411647   204800  100M 83 Linux 
 +/dev/sdb3        411648   616447   204800  100M 83 Linux 
 +/dev/sdb4        616448 67108863 66492416 31.7G  Extended 
 +/dev/sdb5        618496  1642495  1024000  500M 83 Linux 
 +/dev/sdb6       1644544  2054143   409600  200M 83 Linux 
 +/dev/sdb7       2056192  2670591   614400  300M 83 Linux 
 +/dev/sdb8       2672640  3696639  1024000  500M 83 Linux 
 +/dev/sdb9       3698688  4517887   819200  400M 83 Linux 
 +/dev/sdb10      4519936  5543935  1024000  500M 83 Linux 
 +/dev/sdb11      5545984  6569983  1024000  500M 83 Linux 
 +/dev/sdb12      6572032  6981631   409600  200M 83 Linux
  
-<file> +Command (m for help):  
-id:5:initdefault+</code>
-</file>+
  
-Modifiez-la en:+====LAB #2 Modifier les Drapeaux des Partitions avec fdisk====
  
-<file> +Afin de mettre en place un RAID logiciel ou un volume logique, il est nécessaire de modifier les types de systèmes de fichiers sur les partitions créées.
-id:3:initdefault: +
-</file>+
  
-Le mode **single user** de démarrage de Linux n'est pas habituellement protégé par un mot de passe. Afin de remédier a cela, ajoutez les lignes suivantes:+Modifiez donc les nouvelles partitions à l'aide de la commande **t** de **fdisk** selon le tableau ci-dessous :
  
-<file> +^ Taille de la Partition ^ Type de Système de Fichiers ^ 
-# Single user mode +| 500 Mo | RAID (fd) | 
-~~:S:wait:/sbin/sulogin +| 200 Mo | Linux LVM (8e) | 
-</file>+| 300 Mo | Linux LVM (8e) | 
 +| 500 Mo | RAID (fd) | 
 +| 400 Mo | Linux LVM (8e) | 
 +| 500 Mo | RAID (fd) | 
 +| 500 Mo | RAID (fd) | 
 +| 200 Mo | Inchangé |
  
-Dernièrement, afin d'empêcher une personne a redémarrer le serveur à l'aide des touches **ctrl+alt+supp**, il convient de mettre en commentaire la ligne correspondante:+Vous obtiendrez un résultat similaire à celui-ci :
  
-<file+<code
-# ca::ctrlaltdel:/sbin/shutdown -t3 -r now +Command (m for help)
-</file>+Partition number (1-12, default 12)
 +Hex code or alias (type L to list all)fd
  
-===Les Distributions Upstart===+Changed type of partition 'Linux' to 'Linux raid autodetect'.
  
-Afin d'empêcher une personne à redémarrer le serveur à l'aide des touches **ctrl+alt+supp**, éditez le fichier **/etc/init/control-alt-delete.conf** en modifiant la ligne suivante :+Command (m for help): t 
 +Partition number (1-12, default 12): 6 
 +Hex code or alias (type L to list all)8e
  
-<file> +Changed type of partition 'Linux' to 'Linux LVM'.
-exec /sbin/shutdown -r now "Control-Alt-Delete pressed" +
-</file>+
  
-en +Command (m for help): t 
 +Partition number (1-12, default 12): 7 
 +Hex code or alias (type L to list all): 8e
  
-<file> +Changed type of partition 'Linux' to 'Linux LVM'.
-#exec /sbin/shutdown -k now "Control-Alt-Delete pressed" +
-</file>+
  
-====Renforcer la sécurité du Noyau====+Command (m for help): t 
 +Partition number (1-12, default 12): 8 
 +Hex code or alias (type L to list all): fd
  
-===La commande sysctl===+Changed type of partition 'Linux' to 'Linux raid autodetect'.
  
-Les fichiers dans le répertoire **/proc/sys** peuvent être administrés par la commande **sysctl** en temps réel. +Command (m for help): t 
 +Partition number (1-12, default 12): 9 
 +Hex code or alias (type L to list all): 8e
  
-La commande **sysctl** applique les règles consignés dans le fichier **/etc/sysctl.conf** au démarrage de la machine.+Changed type of partition 'Linux' to 'Linux LVM'.
  
-Saisissez la commande :+Command (m for help)
 +Partition number (1-12, default 12): 10 
 +Hex code or alias (type L to list all): fd
  
-<code> +Changed type of partition 'Linux' to 'Linux raid autodetect'.
-[root@centos7 ~]# cat /etc/sysctl.conf +
-# System default settings live in /usr/lib/sysctl.d/00-system.conf. +
-# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file +
-+
-# For more information, see sysctl.conf(5) and sysctl.d(5).+
  
-[root@centos7 ~]# cat /usr/lib/sysctl.d/00-system.conf +Command (m for help): t 
-# Kernel sysctl configuration file +Partition number (1-12default 12): 11 
-+Hex code or alias (type L to list all): fd
-# For binary values0 is disabled, 1 is enabled.  See sysctl(8and +
-# sysctl.conf(5for more details.+
  
-# Disable netfilter on bridges. +Changed type of partition 'Linux' to 'Linux raid autodetect'.
-net.bridge.bridge-nf-call-ip6tables = 0 +
-net.bridge.bridge-nf-call-iptables = 0 +
-net.bridge.bridge-nf-call-arptables = 0+
  
-# Controls the maximum shared segment size, in bytes +Command (m for help):  
-kernel.shmmax = 4294967295+</code>
  
-# Controls the maximum number of shared memory segmentsin pages+A l'issu des modificationsvous obtiendrez un résultat similaire à celui-ci :
  
-[root@centos7 ~]# ls -l /etc/sysctl.d+<code> 
-total 0 +Command (m for help): p 
-lrwxrwxrwx. root root 14 Jun  4 09:54 99-sysctl.conf -> ../sysctl.conf+Disk /dev/sdb: 32 GiB, 34359738368 bytes, 67108864 sectors 
 +Disk model: QEMU HARDDISK    
 +Units: sectors of * 512 = 512 bytes 
 +Sector size (logical/physical)512 bytes 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 +Disklabel type: dos 
 +Disk identifier: 0x23a56c2e
  
-[root@centos7 ~]# cat /etc/sysctl.d/99-sysctl.conf  +Device     Boot   Start      End  Sectors  Size Id Type 
-# System default settings live in /usr/lib/sysctl.d/00-system.conf+/dev/sdb1          2048   206847   204800  100M 83 Linux 
-# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file +/dev/sdb2        206848   411647   204800  100M 83 Linux 
-# +/dev/sdb3        411648   616447   204800  100M 83 Linux 
-# For more information, see sysctl.conf(5and sysctl.d(5).+/dev/sdb4        616448 67108863 66492416 31.7G  5 Extended 
 +/dev/sdb5        618496  1642495  1024000  500M fd Linux raid autodetect 
 +/dev/sdb6       1644544  2054143   409600  200M 8e Linux LVM 
 +/dev/sdb7       2056192  2670591   614400  300M 8e Linux LVM 
 +/dev/sdb8       2672640  3696639  1024000  500M fd Linux raid autodetect 
 +/dev/sdb9       3698688  4517887   819200  400M 8e Linux LVM 
 +/dev/sdb10      4519936  5543935  1024000  500M fd Linux raid autodetect 
 +/dev/sdb11      5545984  6569983  1024000  500M fd Linux raid autodetect 
 +/dev/sdb12      6572032  6981631   409600  200M 83 Linux 
 + 
 +Command (m for help)
 </code> </code>
  
-==Options de la commande==+Pour écrire la nouvelle table des partitions sur disque, vous devez utilisez la commande **w** puis la commande **partprobe** :
  
-Les options de la commande **sysctl** sont :+<code> 
 +Command (m for help): w 
 +The partition table has been altered. 
 +Calling ioctl() to re-read partition table. 
 +Syncing disks. 
 + 
 +[root@redhat9 ~]# partprobe 
 +[root@redhat9 ~]# 
 +</code> 
 + 
 +<WRAP center round important 60%> 
 +**Important** : Pour créer des partition GPT, RedHat 9 possède l'utilitaire **parted**. Consultez le manuel de celui-ci. 
 +</WRAP> 
 + 
 +====Options de la Commande fdisk==== 
 + 
 +Les options de cette commande sont :
  
 <code> <code>
-[root@centos7 ~]# sysctl --help+[root@redhat9 ~]# fdisk --help
  
 Usage: Usage:
- sysctl [options] [variable[=value] ...]+ fdisk [options] <disk>         change partition table 
 + fdisk [options-l [<disk>...] list partition table(s) 
 + 
 +Display or manipulate a disk partition table.
  
 Options: Options:
-  -a, --all            display all variables + -b, --sector-size <size>      physical and logical sector size 
-  -A                   alias of -a + -B, --protect-boot            don't erase bootbits when creating new label 
-  -X                   alias of -a + -c, --compatibility[=<mode> mode is 'dos' or 'nondos' (default) 
-      --deprecated     include deprecated parameters to listing + -L, --color[=<when>         colorize output (auto, always or never) 
-  -b, --binary         print value without new line +                                 colors are enabled by default 
-  -e, --ignore         ignore unknown variables errors + -l, --list                    display partitions and exit 
-  -N, --names          print variable names without values + -x, --list-details            like --list but with more details 
-  -n, --values         print only values of a variables + -n, --noauto-pt               don't create default partition table on empty devices 
-  -p, --load[=<file>]  read values from file + -o, --output <list>           output columns 
-  -                  alias of -p + -t, --type <type>             recognize specified partition table type only 
-      --system         read values from all system directories + -u, --units[=<unit>]          display units: 'cylinders' or 'sectors' (default) 
-  -r, --pattern <expression> + -s, --getsz                   display device size in 512-byte sectors [DEPRECATED] 
-                       select setting that match expression +     --bytes                   print SIZE in bytes rather than in human readable format 
-  -q--quiet          do not echo variable set +     --lock[=<mode>]           use exclusive device lock (yesno or nonblock) 
-  -w, --write          enable writing a value to variable + -w, --wipe <mode>             wipe signatures (auto, always or never) 
-  -o                   does nothing + -W, --wipe-partitions <mode>  wipe signatures from new partitions (auto, always or never)
-  -x                   does nothing +
-  -d                   alias of -h+
  
- -h, --help     display this help and exit + -C, --cylinders <number>      specify the number of cylinders 
- -V, --version  output version information and exit+ -H, --heads <number>          specify the number of heads 
 + -S, --sectors <number>        specify the number of sectors per track
  
-For more details see sysctl(8).+ -h, --help                    display this help 
 + -V, --version                 display version 
 + 
 +Available output columns: 
 + gpt: Device Start End Sectors Size Type Type-UUID Attrs Name UUID 
 + dos: Device Start End Sectors Cylinders Size Type Id Attrs Boot End-C/H/S Start-C/H/
 + bsd: Slice Start End Sectors Cylinders Size Type Bsize Cpg Fsize 
 + sgi: Device Start End Sectors Cylinders Size Type Id Attrs 
 + sun: Device Start End Sectors Cylinders Size Type Id Flags 
 + 
 +For more details see fdisk(8).
 </code> </code>
  
-<WRAP center round important 50%> +=====Logical Volume Manager (LVM)=====
-**Important** : Consultez la page de la traduction du manuel de **sysctl** **[[http://www.delafond.org/traducmanfr/man/man8/sysctl.8.html|ici]]** pour comprendre la commande. +
-</WRAP>+
  
-=====LAB #System Hardening à l'aide de l'outil Bastille=====+====LAB #Volumes Logiques Linéaires====
  
-====Présentation====+Afin de mettre en place le LVM, vous avez besoin du paquet **lvm2** et du paquet **device-mapper**. 
  
-Bastille Linux est un script interactif de renforcement de la sécurité pour certaines distributions de Linux dont %%RHEL%%, %%CentOS%% et Debian.+Nous allons travailler sous RedHat 9 avec les partitions suivantes :
  
-====Installation====+<code> 
 +/dev/sdb6       1644544 2054143  409600  200M 8e Linux LVM 
 +/dev/sdb7       2056192 2670591  614400  300M 8e Linux LVM 
 +/dev/sdb9       3698688 4517887  819200  400M 8e Linux LVM 
 +</code>
  
-Installez le dépôt EPEL :+Pour initialiser le LVM saississez la commande suivante :
  
 <code> <code>
-[root@centos7 ~]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm +[root@redhat9 ~]# vgscan 
-[root@centos7 ~]# rpm -ivh epel-release-latest-7.noarch.rpm+  Found volume group "rhel" using metadata type lvm2
 </code> </code>
  
-Commencez par installer la dépendance de Bastille :+Les options de la commande **vgscan** sont :
  
 <code> <code>
-[root@centos7 ~]# yum install perl-Curses+[root@redhat9 ~]# vgscan --longhelp 
 +  vgscan - Search for all volume groups 
 + 
 +  vgscan 
 +        [    --ignorelockingfailure ] 
 +        [    --mknodes ] 
 +        [    --notifydbus ] 
 +        [    --reportformat basic|json|json_std ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Common options for lvm: 
 +        [ -d|--debug ] 
 +        [ -h|--help ] 
 +        [ -q|--quiet ] 
 +        [ -v|--verbose ] 
 +        [ -y|--yes ] 
 +        [ -t|--test ] 
 +        [    --commandprofile String ] 
 +        [    --config String ] 
 +        [    --driverloaded y|n ] 
 +        [    --nolocking ] 
 +        [    --lockopt String ] 
 +        [    --longhelp ] 
 +        [    --profile String ] 
 +        [    --version ] 
 +        [    --devicesfile String ] 
 +        [    --devices PV ] 
 +        [    --nohints ] 
 +        [    --journal String ] 
 + 
 +  Common variables for lvm: 
 +        Variables in option or position args are capitalized, 
 +        e.g. PV, VG, LV, Size, Number, String, Tag. 
 + 
 +        PV 
 +        Physical Volume name, a device path under /dev. 
 +        For commands managing physical extents, a PV positional arg 
 +        generally accepts a suffix indicating a range (or multiple ranges) 
 +        of PEs. When the first PE is omitted, it defaults to the start of 
 +        the device, and when the last PE is omitted it defaults to the end. 
 +        PV[:PE-PE]... is start and end range (inclusive), 
 +        PV[:PE+PE]... is start and length range (counting from 0). 
 + 
 +        LV 
 +        Logical Volume name. See lvm(8) for valid names. An LV positional 
 +        arg generally includes the VG name and LV name, e.g. VG/LV. 
 +        LV followed by _<type> indicates that an LV of the given type is 
 +        required. (raid represents raid<N> type). 
 +        The _new suffix indicates that the LV name is new. 
 + 
 +        Tag 
 +        Tag name. See lvm(8) for information about tag names and using 
 +        tags in place of a VG, LV or PV. 
 + 
 +        Select 
 +        Select indicates that a required positional arg can be omitted 
 +        if the --select option is used. No arg appears in this position. 
 + 
 +        Size[UNIT] 
 +        Size is an input number that accepts an optional unit. 
 +        Input units are always treated as base two values, regardless of 
 +        capitalization, e.g. 'k' and 'K' both refer to 1024. 
 +        The default input unit is specified by letter, followed by |UNIT. 
 +        UNIT represents other possible input units: BbBsSkKmMgGtTpPeE. 
 +        (This should not be confused with the output control --units, where 
 +        capital letters mean multiple of 1000.)
 </code> </code>
  
-Téléchargez et installez Bastille :+===Physical Volume (PV)=== 
 + 
 +Pour créer le **PV** il convient d'utiliser la commande **pvcreate** :
  
 <code> <code>
-[root@centos7 ~]# wget https://www.dropbox.com/s/sz0ggexdkkduumb/Bastille-3.0.9-1.0.noarch.rpm+[root@redhat9 ~]# pvcreate /dev/sdb6 /dev/sdb7 /dev/sdb9 
 +  Physical volume "/dev/sdb6" successfully created. 
 +  Physical volume "/dev/sdb7" successfully created. 
 +  Physical volume "/dev/sdb9" successfully created.
 </code> </code>
 +
 +Les options de la commande **pvcreate** sont :
  
 <code> <code>
-[root@centos7 ~]# yum localinstall Bastille-3.0.9-1.0.noarch.rpm --nogpgcheck+[root@redhat9 ~]# pvcreate --longhelp 
 +  pvcreate - Initialize physical volume(s) for use by LVM 
 + 
 +  pvcreate PV ..
 +        [ -f|--force ] 
 +        [ -M|--metadatatype lvm2 ] 
 +        [ -u|--uuid String ] 
 +        [ -Z|--zero y|n ] 
 +        [    --dataalignment Size[k|UNIT] ] 
 +        [    --dataalignmentoffset Size[k|UNIT] ] 
 +        [    --bootloaderareasize Size[m|UNIT] ] 
 +        [    --labelsector Number ] 
 +        [    --pvmetadatacopies 0|1|2 ] 
 +        [    --metadatasize Size[m|UNIT] ] 
 +        [    --metadataignore y|n ] 
 +        [    --norestorefile ] 
 +        [    --setphysicalvolumesize Size[m|UNIT] ] 
 +        [    --reportformat basic|json|json_std ] 
 +        [    --restorefile String ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Common options for lvm: 
 +        [ -d|--debug ] 
 +        [ -h|--help ] 
 +        [ -q|--quiet ] 
 +        [ -v|--verbose ] 
 +        [ -y|--yes ] 
 +        [ -t|--test ] 
 +        [    --commandprofile String ] 
 +        [    --config String ] 
 +        [    --driverloaded y|n ] 
 +        [    --nolocking ] 
 +        [    --lockopt String ] 
 +        [    --longhelp ] 
 +        [    --profile String ] 
 +        [    --version ] 
 +        [    --devicesfile String ] 
 +        [    --devices PV ] 
 +        [    --nohints ] 
 +        [    --journal String ] 
 + 
 +  Common variables for lvm: 
 +        Variables in option or position args are capitalized, 
 +        e.g. PV, VG, LV, Size, Number, String, Tag. 
 + 
 +        PV 
 +        Physical Volume name, a device path under /dev. 
 +        For commands managing physical extents, a PV positional arg 
 +        generally accepts a suffix indicating a range (or multiple ranges) 
 +        of PEs. When the first PE is omitted, it defaults to the start of 
 +        the device, and when the last PE is omitted it defaults to the end. 
 +        PV[:PE-PE]... is start and end range (inclusive), 
 +        PV[:PE+PE]... is start and length range (counting from 0). 
 + 
 +        LV 
 +        Logical Volume nameSee lvm(8) for valid names. An LV positional 
 +        arg generally includes the VG name and LV name, e.g. VG/LV. 
 +        LV followed by _<type> indicates that an LV of the given type is 
 +        required. (raid represents raid<N> type). 
 +        The _new suffix indicates that the LV name is new. 
 + 
 +        Tag 
 +        Tag name. See lvm(8) for information about tag names and using 
 +        tags in place of a VG, LV or PV. 
 + 
 +        Select 
 +        Select indicates that a required positional arg can be omitted 
 +        if the --select option is used. No arg appears in this position. 
 + 
 +        Size[UNIT] 
 +        Size is an input number that accepts an optional unit. 
 +        Input units are always treated as base two values, regardless of 
 +        capitalization, e.g. 'k' and 'K' both refer to 1024. 
 +        The default input unit is specified by letter, followed by |UNIT. 
 +        UNIT represents other possible input units: BbBsSkKmMgGtTpPeE. 
 +        (This should not be confused with the output control --units, where 
 +        capital letters mean multiple of 1000.)
 </code> </code>
  
-Dernièrement créez un lien symbolique :+Pour visualiser les PVs il convient d'utiliser la commande **pvdisplay** :
  
 <code> <code>
-[root@centos7 /]# ln -/usr/lib/Bastille /usr/lib64/+[root@redhat9 ~]# pvdisplay /dev/sdb6 /dev/sdb7 /dev/sdb9 
 +  "/dev/sdb6" is a new physical volume of "200.00 MiB" 
 +  --- NEW Physical volume --- 
 +  PV Name               /dev/sdb6 
 +  VG Name                
 +  PV Size               200.00 MiB 
 +  Allocatable           NO 
 +  PE Size                  
 +  Total PE              0 
 +  Free PE               0 
 +  Allocated PE          0 
 +  PV UUID               qFjsnE-XjSN-HBqU-z4ML-NnJm-E6EQ-6hNFUo 
 +    
 +  "/dev/sdb7" is a new physical volume of "300.00 MiB" 
 +  --- NEW Physical volume --- 
 +  PV Name               /dev/sdb7 
 +  VG Name                
 +  PV Size               300.00 MiB 
 +  Allocatable           NO 
 +  PE Size                  
 +  Total PE              0 
 +  Free PE               0 
 +  Allocated PE          0 
 +  PV UUID               CKljsJ-dZ1n-WwQZ-G0w3-3E7k-juL1-rd8OhF 
 +    
 +  "/dev/sdb9" is a new physical volume of "400.00 MiB" 
 +  --- NEW Physical volume --- 
 +  PV Name               /dev/sdb9 
 +  VG Name                
 +  PV Size               400.00 MiB 
 +  Allocatable           NO 
 +  PE Size                  
 +  Total PE              0 
 +  Free PE               0 
 +  Allocated PE          0 
 +  PV UUID               80N1XI-aoN5-Vcnp-AOaP-eSWF-cWIH-QMbe0A
 </code> </code>
  
-===Utilisation===+Les options de la commande **pvdisplay** sont :
  
-Pour démarrez bastille en mode texte, saisissez la commande suivante :+<code> 
 +[root@redhat9 ~]# pvdisplay --longhelp 
 +  pvdisplay - Display various attributes of physical volume(s)
  
-  # /usr/sbin/bastille -c [Entrée]+  pvdisplay 
 +        [ -a|--all ] 
 +        [ -c|--colon ] 
 +        [ -C|--columns ] 
 +        [ -m|--maps ] 
 +        [ -o|--options String ] 
 +        [ -S|--select String ] 
 +        [ -s|--short ] 
 +        [ -O|--sort String ] 
 +        [    --aligned ] 
 +        [    --binary ] 
 +        [    --configreport log|vg|lv|pv|pvseg|seg ] 
 +        [    --foreign ] 
 +        [    --ignorelockingfailure ] 
 +        [    --logonly ] 
 +        [    --noheadings ] 
 +        [    --nosuffix ] 
 +        [    --readonly ] 
 +        [    --reportformat basic|json|json_std ] 
 +        [    --separator String ] 
 +        [    --shared ] 
 +        [    --unbuffered ] 
 +        [    --units [Number]r|R|h|H|b|B|s|S|k|K|m|M|g|G|t|T|p|P|e|E ] 
 +        [ COMMON_OPTIONS ] 
 +        PV|Tag ... ]
  
-Pour démarrez bastille en mode graphique, saisissez la commande suivante :+  Common options for lvm: 
 +        [ -d|--debug ] 
 +        [ -h|--help ] 
 +        [ -q|--quiet ] 
 +        [ -v|--verbose ] 
 +        [ -y|--yes ] 
 +        [ -t|--test ] 
 +        [    --commandprofile String ] 
 +        [    --config String ] 
 +        [    --driverloaded y|n ] 
 +        [    --nolocking ] 
 +        [    --lockopt String ] 
 +        [    --longhelp ] 
 +        [    --profile String ] 
 +        [    --version ] 
 +        [    --devicesfile String ] 
 +        [    --devices PV ] 
 +        [    --nohints ] 
 +        [    --journal String ]
  
-  # /usr/sbin/bastille -x [Entrée]+  Common variables for lvm: 
 +        Variables in option or position args are capitalized, 
 +        e.g. PV, VG, LV, Size, Number, String, Tag.
  
-<WRAP center round todo 50%> +        PV 
-**A Faire** - Lancez Bastille et répondez aux questions posées-amorcez votre machine virtuelle et testez le résultat+        Physical Volume name, a device path under /dev. 
-</WRAP>+        For commands managing physical extents, a PV positional arg 
 +        generally accepts a suffix indicating a range (or multiple ranges) 
 +        of PEs. When the first PE is omitted, it defaults to the start of 
 +        the device, and when the last PE is omitted it defaults to the end. 
 +        PV[:PE-PE]... is start and end range (inclusive), 
 +        PV[:PE+PE]... is start and length range (counting from 0).
  
-=====LAB #2 - Mise en place de SELinux pour sécuriser le serveur=====+        LV 
 +        Logical Volume name. See lvm(8) for valid names. An LV positional 
 +        arg generally includes the VG name and LV name, e.g. VG/LV. 
 +        LV followed by _<type> indicates that an LV of the given type is 
 +        required. (raid represents raid<N> type). 
 +        The _new suffix indicates that the LV name is new.
  
-====Introducton====+        Tag 
 +        Tag name. See lvm(8) for information about tag names and using 
 +        tags in place of a VG, LV or PV.
  
-L'approche %%SELinux%% (//Security Enhanced Linux//) à la sécurité est une approche de type **TE**. Elle essaie aussi d'intégrer les notions des approches de type **RBAC**, **MAC** et **MLS** sous la forme de **MCS** : +        Select 
-ur +        Select indicates that required positional arg can be omitted 
-^ Type de Sécurité ^ Nom ^ Description ^ +        if the --select option is usedNo arg appears in this position.
-| TE |  //Type enforcement//  | Chaque objet une étiquette appelé //type// pour un fichier et //domaine// pour un processus. La politique de sécurité définit l'interaction entre les types et les domaines. | +
-| RBAC |  //Role Based Access Control//  | Un utilisateur a un ou plusieurs rôlesLes droits sont attribués aux rôles. | +
-| MAC |  //Mandatory Access Control//  | L'accès aux objets est en fonction de la classification de l'objet (Très secret, Secret, Confidentiel, Public). L'administrateur définit la politique de sécurité et les utilisateurs s'y conforment. | +
-| MLS |  //Multi-Level Security//  | Les politiques de sécurité imposent que qu'un sujet doit dominer un objet pour pouvoir le lire tandis que l'objet doit dominer le sujet pour que ce dernier puisse y écrire|+
  
-Même quand le modèle %%SELinux%% de sécurité est actif, la sécurité type DAC est toujours activeCependant dans le cas où la sécurité du type DAC autorise une action%%SELinux%% va évaluer cette action par rapport à ses propres règles avant de l'autoriser.+        Size[UNIT] 
 +        Size is an input number that accepts an optional unit. 
 +        Input units are always treated as base two valuesregardless of 
 +        capitalization, e.g. 'k' and 'K' both refer to 1024. 
 +        The default input unit is specified by letter, followed by |UNIT. 
 +        UNIT represents other possible input units: BbBsSkKmMgGtTpPeE. 
 +        (This should not be confused with the output control --units, where 
 +        capital letters mean multiple of 1000.
 +</code>
  
-%%SELinux%% évalue toujours des **//actions//** tentées par des **//sujets//** sur des **//objets//**. +===Volume Group (VG) et Physical Extent (PE)===
  
-Dans le contexte de %%SELinux%% :+Pour créer un Volume Group dénommé **vg0**, il convient d'utiliser la commande **vgcreate** :
  
-  * un **//sujet//** est toujours un **processus**, +<code> 
-  * un **//objet//** peut être un fichier, un répertoire, un autre processus ou une ressource système, +[root@redhat9 ~]# vgcreate -s 8M vg0 /dev/sdb6 /dev/sdb7 /dev/sdb9 
-  * une **//action//** est une **permission**.+  Volume group "vg0" successfully created 
 +</code>
  
-Chaque **//classe d'objet//** possède un jeu de permissions possibles ou **//actions//** qui peuvent être uniques à la classe ou bien **héritées** d'autres classes.+Les options de la commande **vgcreate** sont :
  
-====Définitions====+<code> 
 +[root@redhat9 ~]# vgcreate --help 
 +  vgcreate - Create a volume group
  
-===Security Context===+  vgcreate VG_new PV ... 
 +        [ -A|--autobackup y|n ] 
 +        [ -c|--clustered y|n ] 
 +        [ -l|--maxlogicalvolumes Number ] 
 +        [ -p|--maxphysicalvolumes Number ] 
 +        [ -M|--metadatatype lvm2 ] 
 +        [ -s|--physicalextentsize Size[m|UNIT] ] 
 +        [ -f|--force ] 
 +        [ -Z|--zero y|n ] 
 +        [    --addtag Tag ] 
 +        [    --alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit ] 
 +        [    --metadataprofile String ] 
 +        [    --labelsector Number ] 
 +        [    --metadatasize Size[m|UNIT] ] 
 +        [    --pvmetadatacopies 0|1|2 ] 
 +        [    --vgmetadatacopies all|unmanaged|Number ] 
 +        [    --reportformat basic|json|json_std ] 
 +        [    --dataalignment Size[k|UNIT] ] 
 +        [    --dataalignmentoffset Size[k|UNIT] ] 
 +        [    --shared ] 
 +        [    --systemid String ] 
 +        [    --locktype sanlock|dlm|none ] 
 +        [    --setautoactivation y|n ] 
 +        [ COMMON_OPTIONS ]
  
-%%SELinux%% associe un //Security Context// (SC) à chaque **//objet//** et **//sujet//** du système. +  Common options for lvm: 
 +        [ -d|--debug ] 
 +        [ -h|--help ] 
 +        [ -q|--quiet ] 
 +        [ -v|--verbose ] 
 +        [ -y|--yes ] 
 +        [ -t|--test ] 
 +        [    --commandprofile String ] 
 +        [    --config String ] 
 +        [    --driverloaded y|n ] 
 +        [    --nolocking ] 
 +        [    --lockopt String ] 
 +        [    --longhelp ] 
 +        [    --profile String ] 
 +        [    --version ] 
 +        [    --devicesfile String ] 
 +        [    --devices PV ] 
 +        [    --nohints ] 
 +        [    --journal String ]
  
-Un SC prend la forme **identité:rôle:type:niveau** :+  Use --longhelp to show all options and advanced commands. 
 +</code>
  
-^ Nom ^ Descriptions ^ +Pour afficher les informations concernant **vg0**, il convient d'utiliser la commande **vgdisplay** :
-| Identité | Le nom du propriétaire de l'objet. Une identité est associée à des rôles. Par défaut l'utilisateur à une identité de **user_u**. | +
-| Rôle | Essentiellement appliqué aux processusle rôle est appelé une domaine. Dans le cas d'un rôle de fichier, celui-ci est toujours **object_r**. Un rôle se termine généralement par **_r**. | +
-| Type | Définit la classification de sécurité de l'objet. Un type se termine généralement par **_t**.| +
-| Niveau | Un niveau est un attribut de MLS et MCS. Une plage MLS est une paire de niveaux exprimée en utilisant la syntaxe //niveaubas-niveauhaut//. Chaque niveau est une paire exprimée en tant que sensibilitéhaut-sensibilitébas:catégoriehaut:catégoriebas par exemple s0-s0:c0.c1023. Il est important de noter que s0-s0 s'exprime aussi s0 et c0, c1, c2, c3 est exprimé c0.c3. |+
  
-Sous RHEL/CentOS 7, le fichier **/etc/selinux/targeted/setrans.conf** contient la correspondance entre les niveaux et leurs valeurs compréhensibles par l'utilisateur :+<code> 
 +[root@redhat9 ~]# vgdisplay vg0 
 +  --- Volume group --- 
 +  VG Name               vg0 
 +  System ID              
 +  Format                lvm2 
 +  Metadata Areas        3 
 +  Metadata Sequence No  1 
 +  VG Access             read/write 
 +  VG Status             resizable 
 +  MAX LV                0 
 +  Cur LV                0 
 +  Open LV               0 
 +  Max PV                0 
 +  Cur PV                3 
 +  Act PV                3 
 +  VG Size               880.00 MiB 
 +  PE Size               8.00 MiB 
 +  Total PE              110 
 +  Alloc PE Size       0    
 +  Free  PE Size       110 880.00 MiB 
 +  VG UUID               7tQDuL-D900-dWk5-AEo1-JOdP-9Tdq-BKfiBF 
 +</code> 
 + 
 +Les options de la commande **vgdisplay** sont :
  
 <code> <code>
-[root@centos7 /]# cat /etc/selinux/targeted/setrans.conf +[root@redhat9 ~]# vgdisplay --help 
-# +  vgdisplay - Display volume group information 
-# Multi-Category Security translation table for SELinux + 
- +  vgdisplay 
-# Uncomment the following to disable translation libary +        [ -A|--activevolumegroups ] 
-# disable=1 +        [ -c|--colon ] 
-# +        [ -C|--columns ] 
-# Objects can be categorized with 0-1023 categories defined by the admin. +        [ -o|--options String ] 
-# Objects can be in more than one category at a time. +        [ -S|--select String ] 
-# Categories are stored in the system as c0-c1023.  Users can use this +        -s|--short ] 
-# table to translate the categories into a more meaningful output+        [ -O|--sort String ] 
-# Examples: +           --aligned ] 
-# s0:c0=CompanyConfidential +           --binary ] 
-# s0:c1=PatientRecord +        [    --configreport log|vg|lv|pv|pvseg|seg ] 
-# s0:c2=Unclassified +        [    --foreign ] 
-# s0:c3=TopSecret +        [    --ignorelockingfailure ] 
-# s0:c1,c3=CompanyConfidentialRedHat +        [    --logonly ] 
-s0=SystemLow +        [    --noheadings ] 
-s0-s0:c0.c1023=SystemLow-SystemHigh +        [    --nosuffix ] 
-s0:c0.c1023=SystemHigh+        [    --readonly ] 
 +        [    --shared ] 
 +        [    --separator String ] 
 +        [    --unbuffered ] 
 +        [    --units [Number]r|R|h|H|b|B|s|S|k|K|m|M|g|G|t|T|p|P|e|E ] 
 +        [ COMMON_OPTIONS ] 
 +        [ VG|Tag ... ] 
 + 
 +  Common options for lvm
 +        [ -d|--debug ] 
 +        [ -h|--help ] 
 +        [ -q|--quiet ] 
 +        [ -v|--verbose ] 
 +        [ -y|--yes ] 
 +        -t|--test ] 
 +           --commandprofile String ] 
 +        [    --config String ] 
 +        [    --driverloaded y|n ] 
 +        [    --nolocking ] 
 +        [    --lockopt String ] 
 +        [    --longhelp ] 
 +        [    --profile String ] 
 +        [    --version ] 
 +        [    --devicesfile String ] 
 +        [    --devices PV ] 
 +        [    --nohints ] 
 +        [    --journal String ] 
 + 
 +  Use --longhelp to show all options and advanced commands.
 </code> </code>
  
-Dans le contexte d'un SC pour un **//sujet//**, le champ **identité** indique les privilèges de l'utilisateur %%SELinux%% utilisés par le **//sujet//**.+===Logical Volumes (LV)===
  
-Dans le contexte d'un SC pour un **//objet//**le champ **identité** indique à quel utilisateur %%SELinux%% appartient l'**//objet//**.+Pour créer un **Logical Volume** dénommé **lv0** dans le **Volume Group** **vg0**, il convient d'utiliser la commande **lvcreate** :
  
-%%SELinux%% maintient sa propre liste d'utilisateurs, différente de la liste DAC de LinuxIl existe cependant une correspondance entre les deux listes de façon à ce que les utilisateurs MAC puissent être soumissent aux restrictions de %%SELinux%% :+<code> 
 +[root@redhat9 ~]# lvcreate -L 350 -n lv0 vg0 
 +  Rounding up size to full physical extent 352.00 MiB 
 +  Logical volume "lv0" created. 
 +</code> 
 + 
 +<WRAP center round important 60%
 +**Important** -Notez que la taille du LV est un multiple du PE. 
 +</WRAP> 
 + 
 +Les options de la commande **lvcreate** sont :
  
 <code> <code>
-[root@centos7 /]# /usr/sbin/semanage login -l+[root@redhat9 ~]# lvcreate --help 
 +  lvcreate - Create a logical volume
  
-Login Name           SELinux User         MLS/MCS Range        Service+  Create a linear LV. 
 +  lvcreate -L|--size Size[m|UNIT] VG 
 +        [ --type linear ] (implied) 
 +        [ -l|--extents Number[PERCENT] ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ]
  
-__default__          unconfined_u         s0-s0:c0.c1023       * +  Create a striped LV
-root                 unconfined_u         s0-s0:c0.c1023       * +  lvcreate -i|--stripes Number -L|--size Size[m|UNIT] VG 
-system_u             system_u             s0-s0:c0.c1023       *   +        --type striped ] (implied) 
-</code>+        [ -l|--extents Number[PERCENT] ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ]
  
-===Domains et Types===+  Create a raid1 or mirror LV. 
 +  lvcreate -m|--mirrors Number -L|--size Size[m|UNIT] VG 
 +        [ --type raid1|mirror ] (implied) 
 +        [ -l|--extents Number[PERCENT] ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ -R|--regionsize Size[m|UNIT] ] 
 +        [    --mirrorlog core|disk ] 
 +        [    --minrecoveryrate Size[k|UNIT] ] 
 +        [    --maxrecoveryrate Size[k|UNIT] ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ]
  
-Le **Domain** est l'endroit d'exécution d'un processusChaque processus a un **Domain**Le **Domain** détermine les accès du processus.+  Create a raid LV (a specific raid level must be used, e.g. raid1). 
 +  lvcreate --type raid -L|--size Size[m|UNIT] VG 
 +        [ -l|--extents Number[PERCENT] ] 
 +        [ -i|--stripes Number ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ -m|--mirrors Number ] 
 +        [ -R|--regionsize Size[m|UNIT] ] 
 +        [    --minrecoveryrate Size[k|UNIT] ] 
 +        [    --maxrecoveryrate Size[k|UNIT] ] 
 +        [    --raidintegrity y|n ] 
 +        [    --raidintegritymode String ] 
 +        [    --raidintegrityblocksize Number ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ]
  
-Le **Domain** contient des **//objets//** et des **//sujets//** qui interagissent ensembleCe modèle, où chaque **//sujet//** se voit attribué à un **Domain** et où uniquement certaines opérations sont permises, est appelé **//Type Enforcement//**.+  Create a raid10 LV. 
 +  lvcreate -m|--mirrors Number -i|--stripes Number -L|--size Size[m|UNIT] VG 
 +        [ --type raid10 ] (implied) 
 +        [ -l|--extents Number[PERCENT] ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ -R|--regionsize Size[m|UNIT] ] 
 +        [    --minrecoveryrate Size[k|UNIT] ] 
 +        [    --maxrecoveryrate Size[k|UNIT] ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ]
  
-Dans %%SELinux%% on utilise le mot :+  Create a COW snapshot LV of an origin LV. 
 +  lvcreate -s|--snapshot -L|--size Size[m|UNIT] LV 
 +        [ --type snapshot ] (implied) 
 +        [ -l|--extents Number[PERCENT] ] 
 +        [ -i|--stripes Number ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ -c|--chunksize Size[k|UNIT] ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ]
  
-  * **Domain** pour un processus, +  Create a thin pool. 
-  * **Type** pour un fichier.+  lvcreate --type thin-pool -L|--size Size[m|UNIT] VG 
 +        [ -l|--extents Number[PERCENT] ] 
 +        [ -i|--stripes Number ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ -T|--thin ] 
 +        [ -c|--chunksize Size[k|UNIT] ] 
 +        [    --thinpool LV_new ] 
 +        [    --discards passdown|nopassdown|ignore ] 
 +        [    --errorwhenfull y|n ] 
 +        [    --poolmetadatasize Size[m|UNIT] ] 
 +        [    --poolmetadataspare y|n ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ..]
  
-===Roles===+  Create a cache pool. 
 +  lvcreate --type cache-pool -L|--size Size[m|UNIT] VG 
 +        [ -l|--extents Number[PERCENT] ] 
 +        [ -i|--stripes Number ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ -H|--cache ] 
 +        [ -c|--chunksize Size[k|UNIT] ] 
 +        [    --cachemode writethrough|writeback|passthrough ] 
 +        [    --cachepolicy String ] 
 +        [    --cachesettings String ] 
 +        [    --cachemetadataformat auto|1|2 ] 
 +        [    --poolmetadatasize Size[m|UNIT] ] 
 +        [    --poolmetadataspare y|n ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ]
  
-Un **Rôle** est comme un utilisateur dans le système de sécurité DAC de Linux. Chaque utilisateur autorisé peut assumer l'identité du **Rôle** afin d'exécuter les commandes liées au **Rôle**.+  Create a thin LV in a thin pool. 
 +  lvcreate -V|--virtualsize Size[m|UNIT] --thinpool LV VG 
 +        [ --type thin ] (implied) 
 +        [ -T|--thin ] 
 +        [ COMMON_OPTIONS ]
  
-===Politiques de Sécurité===+  Create a thin LV that is a snapshot of an existing thin LV. 
 +  lvcreate -s|--snapshot LV 
 +        [ --type thin ] (implied) 
 +        [ -T|--thin ] 
 +        [ COMMON_OPTIONS ]
  
-Une politique de sécurité définit les SC de chaque application. Elle définit des droits d'accès des domaines aux types. Il y deux types de politique possible :+  Create thin LV that is a snapshot of an external origin LV. 
 +  lvcreate --type thin --thinpool LV LV 
 +        [ -T|--thin ] 
 +        [ COMMON_OPTIONS ]
  
-^ Politique ^ Description ^ +  Create a LV that returns VDO when used. 
-targeted Les politiques de sécurité ne s'appliquent qu'à certaines applications +  lvcreate --type vdo -L|--size Size[m|UNIT] VG 
-mls Multi Level Security protection |+        [ -l|--extents Number[PERCENT] ] 
 +        [ -i|--stripes Number ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ -V|--virtualsize Size[m|UNIT] ] 
 +        [    --vdo ] 
 +        [    --vdopool LV_new ] 
 +        [    --compression y|n ] 
 +        [    --deduplication y|n ] 
 +        [    --vdosettings String ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ]
  
-Les politiques de sécurité se trouvent dans le répertoire **/etc/selinux** :+  Create a new LV, then attach the specified cachepool  
 +  which converts the new LV to type cache. 
 +  lvcreate --type cache -L|--size Size[m|UNIT] --cachepool LV VG 
 +        [ -l|--extents Number[PERCENT] ] 
 +        [ -i|--stripes Number ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ -H|--cache ] 
 +        [ -c|--chunksize Size[k|UNIT] ] 
 +        [    --cachemode writethrough|writeback|passthrough ] 
 +        [    --cachepolicy String ] 
 +        [    --cachesettings String ] 
 +        [    --cachemetadataformat auto|1|2 ] 
 +        [    --poolmetadatasize Size[m|UNIT] ] 
 +        [    --poolmetadataspare y|n ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Create a new LV, then attach the specified cachevol  
 +  which converts the new LV to type cache. 
 +  lvcreate --type cache -L|--size Size[m|UNIT] --cachevol LV VG 
 +        [ -l|--extents Number[PERCENT] ] 
 +        [ -i|--stripes Number ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ -c|--chunksize Size[k|UNIT] ] 
 +        [    --cachemode writethrough|writeback|passthrough ] 
 +        [    --cachepolicy String ] 
 +        [    --cachesettings String ] 
 +        [    --cachemetadataformat auto|1|2 ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Create a new LV, then attach a cachevol created from  
 +  the specified cache device, which converts the  
 +  new LV to type cache. 
 +  lvcreate --type cache -L|--size Size[m|UNIT] --cachedevice PV VG 
 +        [ -l|--extents Number[PERCENT] ] 
 +        [ -i|--stripes Number ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ -c|--chunksize Size[k|UNIT] ] 
 +        [    --cachesize Size[m|UNIT] ] 
 +        [    --cachemode writethrough|writeback|passthrough ] 
 +        [    --cachepolicy String ] 
 +        [    --cachesettings String ] 
 +        [    --cachemetadataformat auto|1|2 ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Create a new LV, then attach the specified cachevol  
 +  which converts the new LV to type writecache. 
 +  lvcreate --type writecache -L|--size Size[m|UNIT] --cachevol LV VG 
 +        [ -l|--extents Number[PERCENT] ] 
 +        [ -i|--stripes Number ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [    --cachesettings String ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Create a new LV, then attach a cachevol created from  
 +  the specified cache device, which converts the  
 +  new LV to type writecache. 
 +  lvcreate --type writecache -L|--size Size[m|UNIT] --cachedevice PV VG 
 +        [ -l|--extents Number[PERCENT] ] 
 +        [ -i|--stripes Number ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [    --cachesize Size[m|UNIT] ] 
 +        [    --cachesettings String ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Common options for command: 
 +        [ -a|--activate y|n|ay ] 
 +        [ -A|--autobackup y|n ] 
 +        [ -C|--contiguous y|n ] 
 +        [ -M|--persistent y|n ] 
 +        [ -j|--major Number ] 
 +        [ -k|--setactivationskip y|n ] 
 +        [ -K|--ignoreactivationskip ] 
 +        [ -n|--name String ] 
 +        [ -p|--permission rw|r ] 
 +        [ -r|--readahead auto|none|Number ] 
 +        [ -W|--wipesignatures y|n ] 
 +        [ -Z|--zero y|n ] 
 +        [    --addtag Tag ] 
 +        [    --alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit ] 
 +        [    --setautoactivation y|n ] 
 +        [    --ignoremonitoring ] 
 +        [    --metadataprofile String ] 
 +        [    --minor Number ] 
 +        [    --monitor y|n ] 
 +        [    --nosync ] 
 +        [    --noudevsync ] 
 +        [    --reportformat basic|json|json_std ] 
 + 
 +  Common options for lvm: 
 +        [ -d|--debug ] 
 +        [ -h|--help ] 
 +        [ -q|--quiet ] 
 +        [ -v|--verbose ] 
 +        [ -y|--yes ] 
 +        [ -t|--test ] 
 +        [    --commandprofile String ] 
 +        [    --config String ] 
 +        [    --driverloaded y|n ] 
 +        [    --nolocking ] 
 +        [    --lockopt String ] 
 +        [    --longhelp ] 
 +        [    --profile String ] 
 +        [    --version ] 
 +        [    --devicesfile String ] 
 +        [    --devices PV ] 
 +        [    --nohints ] 
 +        [    --journal String ] 
 + 
 +  Use --longhelp to show all options and advanced commands. 
 +</code> 
 + 
 +Créez maintenant un répertoire dans /mnt pour monter lv0 :
  
 <code> <code>
-[root@centos7 /]# ls -lR /etc/selinux/ | more +[root@redhat9 ~]# mkdir /mnt/lvm 
-/etc/selinux/: +</code>
-total 12 +
--rw-r--r--. 1 root root  547 Dec 10  2015 config +
-drwx------. 2 root root    6 Apr 23 16:24 final +
--rw-r--r--. 1 root root 2321 Aug  4  2017 semanage.conf +
-drwxr-xr-x. 7 root root 4096 Apr 23 16:24 targeted +
-drwxr-xr-x. 2 root root    6 Aug  4  2017 tmp+
  
-/etc/selinux/final: +Créez un système de fichiers en **ext3** sur /dev/vg0/lv0 :
-total 0+
  
-/etc/selinux/targeted: +<code> 
-total 24 +[root@redhat9 ~]# mke2fs -j /dev/vg0/lv0 
-drwx------. 3 root root 4096 Apr 23 16:24 active +mke2fs 1.46.5 (30-Dec-2021) 
--rw-r--r--. root root 2623 Mar  7 15:19 booleans.subs_dist +Discarding device blocksdone                             
-drwxr-xr-x4 root root 4096 Apr 23 16:20 contexts +Creating filesystem with 360448 1k blocks and 90112 inodes 
-drwxr-xr-x. 2 root root    6 Mar  7 15:19 logins +Filesystem UUID34d451f7-96c2-43b1-8cc0-9fe8bafcf498 
-drwxr-xr-x. 3 root root   19 Apr 23 16:41 modules +Superblock backups stored on blocks:  
-drwxr-xr-x. 2 root root   22 Apr 23 16:41 policy +        8193, 24577, 40961, 57345, 73729, 204801, 221185 
--rw-------. 1 root root    0 Mar  7 14:52 semanage.read.LOCK + 
--rw-------. 1 root root    0 Mar  7 14:52 semanage.trans.LOCK +Allocating group tablesdone                             
--rw-r--r--. 1 root root  607 Mar  7 15:19 setrans.conf +Writing inode tablesdone                             
--rw-r--r--. 1 root root  176 Apr 23 16:24 seusers +Creating journal (8192 blocks)done 
---More--+Writing superblocks and filesystem accounting information: done 
 </code> </code>
  
-Afin d'utiliser SELinux en ligne de commande sous RHEL/CentOS 7, il est nécessaire d'installer le paquet **setools-console** :+Montez votre lv0 :
  
 <code> <code>
-[root@centos7 ~]# yum install setools-console+[root@redhat9 ~]# mount -t ext3 /dev/vg0/lv0 /mnt/lvm
 </code> </code>
  
-Pour consulter les statistiques de la politique, il convient d'utiliser la commande **seinfo** :+Vous allez maintenant copier le contenu de votre répertoire /home vers /mnt/lvm. 
 + 
 +Saisissez donc la commande pour copier le contenu de /home :
  
 <code> <code>
-[root@centos7 ~]# seinfo+[root@redhat9 ~]# cp -a /home /mnt/lvm 
 +</code>
  
-Statistics for policy file: /sys/fs/selinux/policy +Constatez ensuite le contenu de /mnt/lvm :
-Policy Version & Typev.28 (binary, mls)+
  
-   Classes:            94    Permissions:       262 +<code> 
-   Sensitivities:          Categories:       1024 +[root@redhat9 ~]# ls -l /mnt/lvm 
-   Types:            4747    Attributes:        251 +total 13 
-   Users:                  Roles:              14 +drwxr-xr-x. 3 root root  1024 Oct 19  2023 home 
-   Booleans:          307    Cond. Expr.:       356 +drwx------2 root root 12288 Oct 23 15:21 lost+found 
-   Allow:          101746    Neverallow:          0 +[root@redhat9 ~]# 
-   Auditallow:        155    Dontaudit:        8846 +
-   Type_trans:      17759    Type_change:        74 +
-   Type_member:        35    Role allow:         39 +
-   Role_trans:        416    Range_trans:      5697 +
-   Constraints:       109    Validatetrans:       0 +
-   Initial SIDs:       27    Fs_use:             29 +
-   Genfscon:          105    Portcon:           602 +
-   Netifcon:            0    Nodecon:             0 +
-   Permissives:            Polcap:              2+
 </code> </code>
  
-<WRAP center round important 50%> +Une particularité du volume logique est la capacité de d'être aggrandi ou réduit sans pertes de données. Commencez par constater la taille totale du volume : 
-**Important** Notez ici le grand nombre de la catégorie **Dontaudit**.+ 
 +<code> 
 +[root@redhat9 ~]# df -h /mnt/lvm 
 +Filesystem           Size  Used Avail Use% Mounted on 
 +/dev/mapper/vg0-lv0  320M  4.4M  298M   2% /mnt/lvm 
 +</code> 
 + 
 +Dans la cas de notre exemple, la taille est de **320 Mo** avec **4.4 Mo** occupé. 
 + 
 +====LAB #4 - Etendre un Volume Logique à Chaud==== 
 + 
 +Pour agrandir un volume logique, le paquet **lvm2** contient les commandes **lvextend** et **resize2fs** : 
 + 
 +<code> 
 +[root@redhat9 ~]# lvextend -L +100M /dev/vg0/lv0 
 +  Rounding size to boundary between physical extents: 104.00 MiB. 
 +  Size of logical volume vg0/lv0 changed from 352.00 MiB (44 extents) to 456.00 MiB (57 extents). 
 +  Logical volume vg0/lv0 successfully resized. 
 +</code> 
 + 
 +<WRAP center round important 60%> 
 +**Important** Notez que l'agrandissement du volume est un multiple du PE.
 </WRAP> </WRAP>
  
-===Langage de Politiques===+Les options de la commande **lvextend** sont :
  
-Un politique est composé de centaines de directives. Les principales directives sont :+<code> 
 +[root@redhat9 ~]# lvextend --help 
 +  lvextend - Add space to a logical volume
  
-==allow==+  Extend an LV by a specified size. 
 +  lvextend -L|--size [+]Size[m|UNIT] LV 
 +        [ -l|--extents [+]Number[PERCENT] ] 
 +        [ -r|--resizefs ] 
 +        [ -i|--stripes Number ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [    --poolmetadatasize [+]Size[m|UNIT] ] 
 +        [    --fs String ] 
 +        [    --fsmode String ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ]
  
-**allow** autorise l'accès d'un processus d'un domaine à des fichiers appartenant à un type donnéLe format de la directive est :+  Extend an LV by specified PV extents. 
 +  lvextend LV PV ... 
 +        [ -r|--resizefs ] 
 +        [ -i|--stripes Number ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [    --fs String ] 
 +        [    --fsmode String ] 
 +        [ COMMON_OPTIONS ]
  
-  allow user_t domaine_t : file (read execute getattr) ;+  Extend a pool metadata SubLV by a specified size. 
 +  lvextend --poolmetadatasize [+]Size[m|UNIT] LV 
 +        [ -i|--stripes Number ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ]
  
-Dans cette directive :+  Extend an LV according to a predefined policy. 
 +  lvextend --usepolicies LV 
 +        [ -r|--resizefs ] 
 +        [    --fs String ] 
 +        [    --fsmode String ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ]
  
-  * user_t est le type de fichier, +  Common options for command: 
-  * domaine_t est le domaine des processus qui sont autorisés par allow, +        [ -A|--autobackup y|n ] 
-  * file (droit1 droit2 etc) est la liste des permissions accordées.+        [ -f|--force ] 
 +        [ -m|--mirrors Number ] 
 +        [ -n|--nofsck ] 
 +        [    --alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit ] 
 +        [    --nosync ] 
 +        [    --noudevsync ] 
 +        [    --reportformat basic|json|json_std ] 
 +        [    --type linear|striped|snapshot|raid|mirror|thin|thin-pool|vdo|vdo-pool|cache|cache-pool|writecache ]
  
-Les permissions possibles sont :+  Common options for lvm: 
 +        [ -d|--debug ] 
 +        [ -h|--help ] 
 +        [ -q|--quiet ] 
 +        [ -v|--verbose ] 
 +        [ -y|--yes ] 
 +        [ -t|--test ] 
 +        [    --commandprofile String ] 
 +        [    --config String ] 
 +        [    --driverloaded y|n ] 
 +        [    --nolocking ] 
 +        [    --lockopt String ] 
 +        [    --longhelp ] 
 +        [    --profile String ] 
 +        [    --version ] 
 +        [    --devicesfile String ] 
 +        [    --devices PV ] 
 +        [    --nohints ] 
 +        [    --journal String ]
  
-  * read +  Use --longhelp to show all options and advanced commands. 
-  * write +</code>
-  * append +
-  * execute +
-  * getattr +
-  * setattr +
-  * lock +
-  * link +
-  * unlink +
-  * rename +
-  * ioctl+
  
-==type==+Le volume ayant été agrandi, il est necessaire maintenant d'agrandir le filesystem qui s'y trouve :
  
-La directive **type** définit un type %%SELinux%%Le type se termine généralement par **_t**.+<code> 
 +[root@redhat9 ~]# resize2fs /dev/vg0/lv0 
 +resize2fs 1.46.5 (30-Dec-2021) 
 +Filesystem at /dev/vg0/lv0 is mounted on /mnt/lvm; on-line resizing required 
 +old_desc_blocks = 2, new_desc_blocks = 2 
 +The filesystem on /dev/vg0/lv0 is now 466944 (1k) blocks long. 
 +</code>
  
-**auditallow, dontaudit**+Constatez maintenant la modification de la taille du volume :
  
-La directive **auditallow** demande l'écriture d'un message de type **avc** dans les journaux. Elle n'est associée à aucune restriction.+<code> 
 +[root@redhat9 ~]# df -h /mnt/lvm 
 +Filesystem           Size  Used Avail Use% Mounted on 
 +/dev/mapper/vg0-lv0  418M  4.4M  391M   2% /mnt/lvm 
 +</code>
  
-L'inverse peut être obtenue avec **dontaudit**, à savoir, cette directive demande à ce qu'il n'y ait pas de journalisation après une interdiction.+Vous noterez que la taille a augmentée et que les données sont toujours présentes.
  
-===type_transition===+====LAB #5 - Snapshots====
  
-Normalement quand un fichier est créé, il hérite du SC du répertoire parent. De même quand un processus %%SELinux%% active un nouveau processusce dernier s'exécute dans le même domaine que son parent. La directive type_transition permet de modifier ce comportement.+Un snapshot est un instantané d'un système de fichiers. Dans cet exemplevous allez créer un snapshot de votre lv0 :
  
-===Décisions de SELinux===+Avant de commencer, créez un fichier de 10Mo dans le volume :
  
-Il existe deux types de décisions auxquelles %%SELinux%% doit faire face :+<code> 
 +[root@redhat9 ~]# dd if=/dev/zero of=/mnt/lvm/10M bs=1048576 count=10 
 +10+0 records in 
 +10+0 records out 
 +10485760 bytes (10 MB, 10 MiB) copied, 0.0239133 s, 438 MB/s 
 +</code>
  
-  * **Décisions d'Accès** +Créez maintenant un snapshot :
-  * **Décisions de Transition**+
  
-==Décisions d'Accès==+<code> 
 +[root@redhat9 ~]# lvcreate -s -L 5M -n testsnap /dev/vg0/lv0 
 +  Rounding up size to full physical extent 8.00 MiB 
 +  Logical volume "testsnap" created. 
 +</code>
  
-Dans ce type de décision %%SELinux%% doit décider d'accorder ou non la permission à :+Pour avoir une confirmation de la création du snapshot, utilisez la commande **lvs** :
  
-  * un **//sujet//** de faire quelque chose à un **//objet//** existant, +<code> 
-  * un **//sujet//** de créer de nouvelles choses dans le **Domain**+[root@redhat9 ~]# lvs 
 +  LV       VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert 
 +  root     rhel -wi-ao---- <44.00g                                                     
 +  swap     rhel -wi-ao----   5.00g                                                     
 +  lv0      vg0  owi-aos--- 456.00m                                                     
 +  testsnap vg0  swi-a-s---   8.00m      lv0    0.15  
 +</code>
  
-==Décisions de Transition==+<WRAP center round important 60%> 
 +**Important** - Notez que le snapshot est créé dans le même VG que le LV d'origine. 
 +</WRAP>
  
-Dans ce type de décision %%SELinux%% doit décider d'accorder ou non la permission :+Les options de la commande **lvs** sont :
  
-  * d'invoquer un processus dans un **Domain** différent du **Domain** courant du **//sujet//**, +<code> 
-  * de créer des **//objets//** dans différents **Types** que le répertoire parent de l'**//objet//**.+[root@redhat9 ~]# lvs --help 
 +  lvs - Display information about logical volumes
  
-====Commandes SELinux====+  lvs 
 +        [ -H|--history ] 
 +        [ -a|--all ] 
 +        [ -o|--options String ] 
 +        [ -S|--select String ] 
 +        [ -O|--sort String ] 
 +        [    --segments ] 
 +        [    --aligned ] 
 +        [    --binary ] 
 +        [    --configreport log|vg|lv|pv|pvseg|seg ] 
 +        [    --foreign ] 
 +        [    --headings none|abbrev|full|0|1|2 ] 
 +        [    --ignorelockingfailure ] 
 +        [    --logonly ] 
 +        [    --nameprefixes ] 
 +        [    --noheadings ] 
 +        [    --nosuffix ] 
 +        [    --readonly ] 
 +        [    --reportformat basic|json|json_std ] 
 +        [    --rows ] 
 +        [    --separator String ] 
 +        [    --shared ] 
 +        [    --unbuffered ] 
 +        [    --units [Number]r|R|h|H|b|B|s|S|k|K|m|M|g|G|t|T|p|P|e|E ] 
 +        [    --unquoted ] 
 +        [ COMMON_OPTIONS ] 
 +        [ VG|LV|Tag ... ]
  
-^ Commande ^ Description ^ +  Common options for lvm: 
-| chcon | Changer le SC d'un fichier +        [ -d|--debug ] 
-audit2allow | Générer la source de la règle de sécurité à l'origine d'une erreur | +        [ -h|--help ] 
-restorecon | Restaurer le SC par défaut à un ou plusieurs fichiers | +        [ -q|--quiet ] 
-setfiles -n | Vérifier si les SC sont corrects  | +        [ -v|--verbose ] 
-semodule | Gèrer les modules de politiques | +        [ -y|--yes ] 
-semodule -i | Installer un module de politiques | +        [ -t|--test ] 
-| checkmodule | Compiler un module | +           --commandprofile String ] 
-| semodule_package | Créer un module installable par semodule | +           --config String ] 
-semanage | Administrer une politique | +           --driverloaded y|n ] 
-| audit2allow -M | Créer un module à partir d'un message d'audit | +           --nolocking ] 
-| sesearch | Recherche des règles %%SELinux%% | +           --lockopt String ] 
-| seinfo | Effectuer des recherches dans la politique | +           --longhelp ] 
-| getsebool | Affiche l'état d'un booléen | +           --profile String ] 
-| getsebool -a | Affiche l'état de l'ensemble des booléens | +           --version ] 
-| sestatus -b | Affiche l'état de l'ensemble des booléens | +           --devicesfile String ] 
-| setsebool | Modifie l'état d'un booléen | +           --devices PV ] 
-| togglesebool | Bascule la valeur d'un booléen |+           --nohints ] 
 +        [    --journal String ]
  
-====Les Etats de SELinux====+  Use --longhelp to show all options and advanced commands. 
 +</code>
  
-%%SELinux%% connait trois états :+Créez maintenant un répertoire pour monter le snapshot :
  
-^ Etat ^ Description ^ +<code> 
-| disabled | %%SELinux%% est inactif. | +[root@redhat9 ~]# mkdir /mnt/testsnap 
-| permissive | %%SELinux%% est actif mais tout est permis. Des interdictions ne font que de générer des messages d'erreurs dans les logs. | +</code>
-| enforcing | %%SELinux%% est actif. |+
  
-L'examen du contenu du fichier **/selinux/enforce** révèle une de deux valeurs qui correspondent à l'**état** de %%SELinux%% :+Montez le snapshot :
  
-^ Valeur ^ Description ^ +<code> 
-| 0 | %%SELinux%% est en mode //permissive// | +[root@redhat9 ~]# mount /dev/vg0/testsnap /mnt/testsnap 
-| 1 | %%SELinux%% est en mode //enforcing/|+</code>
  
-La configuration de l'activation de %%SELinux%% ainsi que son état est effectuée grâce au fichier **/etc/selinux/config** :+Comparez le volume d'origine et le snapshot :
  
 <code> <code>
-[root@centos7 /]# cat /etc/selinux/config+[root@redhat9 ~]# ls -l /mnt/lvm 
 +total 10294 
 +-rw-r--r--. 1 root root 10485760 Oct 23 15:27 10M 
 +drwxr-xr-x. 3 root root     1024 Oct 19  2023 home 
 +drwx------. 2 root root    12288 Oct 23 15:21 lost+found
  
-This file controls the state of SELinux on the system. +[root@redhat9 ~]ls -l /mnt/testsnap/ 
-# SELINUX= can take one of these three values: +total 10294 
-#     enforcing SELinux security policy is enforced. +-rw-r--r--. 1 root root 10485760 Oct 23 15:27 10M 
-#     permissive SELinux prints warnings instead of enforcing. +drwxr-xr-x3 root root     1024 Oct 19  2023 home 
-#     disabled No SELinux policy is loaded. +drwx------. 2 root root    12288 Oct 23 15:21 lost+found
-SELINUX=enforcing +
-# SELINUXTYPE= can take one of three two values+
-#     targeted Targeted processes are protected, +
-#     minimum Modification of targeted policy. Only selected processes are protected.  +
-#     mls Multi Level Security protection. +
-SELINUXTYPE=targeted +
 </code> </code>
  
-Afin de connaître l'état de %%SELinux%%, il convient d'utiliser la commande **getenforce** :+Supprimez maintenant le fichier **10M** de votre volume d'origine :
  
 <code> <code>
-[root@centos7 /]# getenforce +[root@redhat9 ~]# rm /mnt/lvm/10M 
-Enforcing+rm: remove regular file '/mnt/lvm/10M'? y
 </code> </code>
  
-Pour modifier l'état de %%SELinux%%, il convient d'utiliser la commande **setenforce** :+Constatez le résultat de cette suppression :
  
 <code> <code>
-[root@centos7 /]# setenforce permissive +[root@redhat9 ~]# df -Ph /mnt/lvm 
-[root@centos7 /]# getenforce +Filesystem           Size  Used Avail Use% Mounted on 
-Permissive+/dev/mapper/vg0-lv0  418M  4.4M  391M   2% /mnt/lvm 
 + 
 +[root@redhat9 ~]# df -Ph /mnt/testsnap/ 
 +Filesystem                Size  Used Avail Use% Mounted on 
 +/dev/mapper/vg0-testsnap  418M   15M  381M   4% /mnt/testsnap 
 + 
 +[root@redhat9 ~]# lvs 
 +  LV       VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert 
 +  root     rhel -wi-ao---- <44.00g                                                     
 +  swap     rhel -wi-ao----   5.00g                                                     
 +  lv0      vg0  owi-aos--- 456.00m                                                     
 +  testsnap vg0  swi-aos---   8.00m      lv0    0.68     
 </code> </code>
  
-La commande **sestatus** vous informe sur la configuration de %%SELinux%% et notamment sur la version de la politique utilisée :+<WRAP center round todo 60%> 
 +**A Faire** - Restaurez le fichier 10M à partir du snapshot. 
 +</WRAP> 
 + 
 +====LAB #6 - Suppression des Volumes==== 
 + 
 +La suppression d'un volume logique se fait grace à la commande **lvremove** :
  
 <code> <code>
-[root@centos7 /]# sestatus +[root@redhat9 ~]# umount /mnt/testsnap
-SELinux status:                 enabled + 
-SELinuxfs mount:                /sys/fs/selinux +[root@redhat9 ~]# lvremove /dev/vg0/testsnap 
-SELinux root directory:         /etc/selinux +Do you really want to remove active logical volume vg0/testsnap? [y/n]y 
-Loaded policy name            targeted +  Logical volume "testsnap" successfully removed. 
-Current mode:                   permissive + 
-Mode from config file:          enforcing +[root@redhat9 ~]# umount /mnt/lvm  
-Policy MLS status:              enabled + 
-Policy deny_unknown status:     allowed +[root@redhat9 ~]# lvremove /dev/vg0/lv0 
-Max kernel policy version     28+Do you really want to remove active logical volume vg0/lv0? [y/n]
 +  Logical volume "lv0" successfully removed.
 </code> </code>
  
-Les différentes versions de politiques évolue en même temps que le noyau Linux+<WRAP center round important 60%> 
 +**Important** - Notez que cette opération necéssite à ce que le volume logique soit démonté. 
 +</WRAP>
  
-La commande sestatus peut aussi prendre l'option -v :+Les options de la commande **lvremove** sont :
  
 <code> <code>
-[root@centos7 /]# sestatus -v +[root@redhat9 ~]# lvremove --help 
-SELinux status:                 enabled +  lvremove - Remove logical volume(s) from the system 
-SELinuxfs mount:                /sys/fs/selinux + 
-SELinux root directory:         /etc/selinux +  lvremove VG|LV|Tag|Select ... 
-Loaded policy name:             targeted +        [ -A|--autobackup y|n ] 
-Current mode:                   permissive +        [ -f|--force ] 
-Mode from config file:          enforcing +        [ -S|--select String ] 
-Policy MLS status:              enabled +           --nohistory ] 
-Policy deny_unknown status:     allowed +           --noudevsync ] 
-Max kernel policy version:      28+           --reportformat basic|json|json_std ] 
 +        [ COMMON_OPTIONS ]
  
-Process contexts+  Common options for lvm
-Current context:                unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 +        -d|--debug ] 
-Init context:                   system_u:system_r:init_t:s0 +        [ -h|--help ] 
-/usr/sbin/sshd                  system_u:system_r:sshd_t:s0-s0:c0.c1023+        -q|--quiet ] 
 +        [ -v|--verbose ] 
 +        [ -y|--yes ] 
 +        [ -t|--test ] 
 +        [    --commandprofile String ] 
 +        [    --config String ] 
 +        [    --driverloaded y|n ] 
 +        [    --nolocking ] 
 +        [    --lockopt String ] 
 +        [    --longhelp ] 
 +        [    --profile String ] 
 +        [    --version ] 
 +        [    --devicesfile String ] 
 +        [    --devices PV ] 
 +        [    --nohints ] 
 +        [    --journal String ]
  
-File contexts: +  Use --longhelp to show all options and advanced commands.
-Controlling terminal:           unconfined_u:object_r:user_devpts_t:s0 +
-/etc/passwd                     system_u:object_r:passwd_file_t:s0 +
-/etc/shadow                     system_u:object_r:shadow_t:s0 +
-/bin/bash                       system_u:object_r:shell_exec_t:s0 +
-/bin/login                      system_u:object_r:login_exec_t:s0 +
-/bin/sh                         system_u:object_r:bin_t:s0 -> system_u:object_r:shell_exec_t:s0 +
-/sbin/agetty                    system_u:object_r:getty_exec_t:s0 +
-/sbin/init                      system_u:object_r:bin_t:s0 -> system_u:object_r:init_exec_t:s0 +
-/usr/sbin/sshd                  system_u:object_r:sshd_exec_t:s0 +
-/lib/libc.so.6                  system_u:object_r:lib_t:s0 -> system_u:object_r:lib_t:s0 +
-/lib/ld-linux.so.2              system_u:object_r:lib_t:s0 -> system_u:object_r:ld_so_t:s0+
 </code> </code>
  
-====Booléens====+Le Volume Group peut aussi être supprimé :
  
-Les booléens permettent à des ensembles de règles d'être utilisées d'une manière alternative.+<code> 
 +[root@redhat9 ~]# vgremove vg0 
 +  Volume group "vg0" successfully removed 
 +</code>
  
-Pour visualiser l'état l'ensemble des booléens, il convient d'utiliser la commande **getsebool -a** :+Les options de la commande **vgremove** sont :
  
 <code> <code>
-[root@centos7 /]# getsebool -a | more +[root@redhat9 ~]# vgremove --help 
-abrt_anon_write --> off +  vgremove Remove volume group(s) 
-abrt_handle_event --> off + 
-abrt_upload_watch_anon_write --> on +  vgremove VG|Tag|Select ... 
-antivirus_can_scan_system --> off +        [ -f|--force ] 
-antivirus_use_jit --> off +        -S|--select String ] 
-auditadm_exec_content --> on +           --noudevsync ] 
-authlogin_nsswitch_use_ldap --> off +           --reportformat basic|json|json_std ] 
-authlogin_radius --> off +        [ COMMON_OPTIONS ] 
-authlogin_yubikey --> off + 
-awstats_purge_apache_log_files --> off +  Common options for lvm: 
-boinc_execmem --> on +        [ -d|--debug ] 
-cdrecord_read_content --> off +        -h|--help ] 
-cluster_can_network_connect --> off +        -q|--quiet ] 
-cluster_manage_all_files --> off +        -v|--verbose ] 
-cluster_use_execmem --> off +        -y|--yes ] 
-cobbler_anon_write --> off +        -t|--test ] 
-cobbler_can_network_connect --> off +           --commandprofile String ] 
-cobbler_use_cifs --> off +           --config String ] 
-cobbler_use_nfs --> off +           --driverloaded y|n ] 
-collectd_tcp_network_connect --> off +           --nolocking ] 
-condor_tcp_network_connect --> off +           --lockopt String ] 
-conman_can_network --> off +           --longhelp ] 
-container_connect_any --> off +           --profile String ] 
---More--+           --version ] 
 +           --devicesfile String ] 
 +           --devices PV ] 
 +           --nohints ] 
 +           --journal String ] 
 + 
 +  Use --longhelp to show all options and advanced commands.
 </code> </code>
  
-ou la commande **sestatus -b** :+Ainsi que le volume physique :
  
 <code> <code>
-[root@centos7 /]# sestatus -b | more +[root@redhat9 ~]# pvremove /dev/sdb6 /dev/sdb7 /dev/sdb9 
-SELinux status:                 enabled +  Labels on physical volume "/dev/sdb6" successfully wiped. 
-SELinuxfs mount:                /sys/fs/selinux +  Labels on physical volume "/dev/sdb7" successfully wiped. 
-SELinux root directory:         /etc/selinux +  Labels on physical volume "/dev/sdb9" successfully wiped. 
-Loaded policy name:             targeted +</code>
-Current mode:                   permissive +
-Mode from config file:          enforcing +
-Policy MLS status:              enabled +
-Policy deny_unknown status:     allowed +
-Max kernel policy version:      28+
  
-Policy booleans+Les options de la commande **pvremove** sont 
-abrt_anon_write                             off + 
-abrt_handle_event                           off +<code> 
-abrt_upload_watch_anon_write                on +[root@redhat9 ~]# pvremove --help 
-antivirus_can_scan_system                   off +  pvremove - Remove LVM label(s) from physical volume(s) 
-antivirus_use_jit                           off + 
-auditadm_exec_content                       on +  pvremove PV ... 
-authlogin_nsswitch_use_ldap                 off +        [ -f|--force ] 
-authlogin_radius                            off +           --reportformat basic|json|json_std ] 
-authlogin_yubikey                           off +        [ COMMON_OPTIONS ] 
-awstats_purge_apache_log_files              off + 
-boinc_execmem                               on +  Common options for lvm: 
-cdrecord_read_content                       off +        [ -d|--debug ] 
---More--+        -h|--help ] 
 +        [ -q|--quiet ] 
 +        [ -v|--verbose ] 
 +        [ -y|--yes ] 
 +        [ -t|--test ] 
 +        [    --commandprofile String ] 
 +        [    --config String ] 
 +        [    --driverloaded y|n ] 
 +        [    --nolocking ] 
 +        [    --lockopt String ] 
 +        [    --longhelp ] 
 +        [    --profile String ] 
 +        [    --version ] 
 +        [    --devicesfile String ] 
 +        [    --devices PV ] 
 +        [    --nohints ] 
 +        [    --journal String ] 
 + 
 +  Use --longhelp to show all options and advanced commands.
 </code> </code>
  
-Pour fixer l'état d'un booléen, il convient d'utiliser la commande setsebool :+====LAB #7 - Volumes Logiques en Miroir==== 
 + 
 +Re-créez maintenant votre Volume Group :
  
 <code> <code>
-[root@centos7 /]# setsebool antivirus_can_scan_system 1 +[root@redhat9 ~]# pvcreate /dev/sdb6 /dev/sdb7 /dev/sdb9 
-[root@centos7 /]# getsebool antivirus_can_scan_system +  Physical volume "/dev/sdb6" successfully created. 
-antivirus_can_scan_system --> on +  Physical volume "/dev/sdb7" successfully created. 
-[root@centos7 /]# setsebool antivirus_can_scan_system 0 +  Physical volume "/dev/sdb9" successfully created. 
-[root@centos7 /]# getsebool antivirus_can_scan_system + 
-antivirus_can_scan_system --> off+[root@redhat9 ~]# vgcreate -s 8M vg0 /dev/sdb6 /dev/sdb7 /dev/sdb9 
 +  Volume group "vg0" successfully created
 </code> </code>
  
-=====LAB #3 Travailler avec SELinux=====+Créez maintenant un Logical Volume en miroir grâce à l'option **-m** de la commande **lvcreate**, suivi du nombre de miroirs :
  
-Afin reconstruire la politique actuelle **sans** les règles **dontaudit**, utilisez la commande **semodule** : 
-  
 <code> <code>
-[root@centos7 ~]# semodule -DB+[root@redhat9 ~]# lvcreate -m 1 -L 100M -n lv1 vg0 
 +  Rounding up size to full physical extent 104.00 MiB 
 +  Logical volume "lv1" created.
 </code> </code>
  
-Vérifiez qu'il ne reste aucune règle de type **dontaudit** :+Constatez maintenant la présence du miroir :
  
 <code> <code>
-[root@centos7 ~]# seinfo+[root@redhat9 ~]# lvdisplay -m /dev/vg0/lv1 
 +  --- Logical volume --- 
 +  LV Path                /dev/vg0/lv1 
 +  LV Name                lv1 
 +  VG Name                vg0 
 +  LV UUID                L7FOYB-c0tG-dE1u-Oyod-LltI-PEcv-rebeIa 
 +  LV Write Access        read/write 
 +  LV Creation host, time redhat9.ittraining.loc, 2024-10-23 15:42:34 +0200 
 +  LV Status              available 
 +  # open                 0 
 +  LV Size                104.00 MiB 
 +  Current LE             13 
 +  Mirrored volumes       2 
 +  Segments               1 
 +  Allocation             inherit 
 +  Read ahead sectors     auto 
 +  - currently set to     256 
 +  Block device           253:
 +    
 +  --- Segments --- 
 +  Logical extents 0 to 12: 
 +    Type                raid1 
 +    Monitoring          monitored 
 +    Raid Data LV 0 
 +      Logical volume    lv1_rimage_0 
 +      Logical extents   0 to 12 
 +    Raid Data LV 1 
 +      Logical volume    lv1_rimage_1 
 +      Logical extents   0 to 12 
 +    Raid Metadata LV 0  lv1_rmeta_0 
 +    Raid Metadata LV 1  lv1_rmeta_1 
 +</code>
  
-Statistics for policy file/sys/fs/selinux/policy +Le miroir s'étend sur plusieurs volumes physiques :
-Policy Version & Type: v.28 (binary, mls)+
  
-   Classes:            94    Permissions:       262 +<code> 
-   Sensitivities:          Categories:       1024 +[root@redhat9 ~]# pvdisplay -m /dev/sdb6 /dev/sdb7 /dev/sdb9 
-   Types:            4747    Attributes:        251 +  --- Physical volume --- 
-   Users:               8    Roles:              14 +  PV Name               /dev/sdb6 
-   Booleans         307    Cond. Expr.:       356 +  VG Name               vg0 
-   Allow:          101746    Neverallow:          +  PV Size               200.00 MiB / not usable 8.00 MiB 
-   Auditallow       155    Dontaudit:           +  Allocatable           yes  
-   Type_trans     17759    Type_change:        74 +  PE Size               8.00 MiB 
-   Type_member:        35    Role allow:         39 +  Total PE              24 
-   Role_trans       416    Range_trans:      5697 +  Free PE               10 
-   Constraints:       109    Validatetrans:       +  Allocated PE          14 
-   Initial SIDs      27    Fs_use:             29 +  PV UUID               TnqoyD-LQvR-pHro-wlud-vVUq-Kime-xuVTJD 
-   Genfscon:          105    Portcon          602 +    
-   Netifcon:            0    Nodecon:             +  --- Physical Segments --- 
-   Permissives        6    Polcap:              2+  Physical extent 0 to 0: 
 +    Logical volume      /dev/vg0/lv1_rmeta_0 
 +    Logical extents     0 to 
 +  Physical extent 1 to 13: 
 +    Logical volume      /dev/vg0/lv1_rimage_0 
 +    Logical extents     to 12 
 +  Physical extent 14 to 23: 
 +    FREE 
 +    
 +  --- Physical volume --- 
 +  PV Name               /dev/sdb7 
 +  VG Name               vg0 
 +  PV Size               300.00 MiB / not usable 4.00 MiB 
 +  Allocatable           yes  
 +  PE Size               8.00 MiB 
 +  Total PE              37 
 +  Free PE               23 
 +  Allocated PE          14 
 +  PV UUID               eff83E-hlnA-FWdf-VQzX-c3dP-dsDf-3dvhik 
 +    
 +  --- Physical Segments --- 
 +  Physical extent 0 to 0: 
 +    Logical volume      /dev/vg0/lv1_rmeta_1 
 +    Logical extents     0 to 
 +  Physical extent 1 to 13: 
 +    Logical volume      /dev/vg0/lv1_rimage_1 
 +    Logical extents     0 to 12 
 +  Physical extent 14 to 36: 
 +    FREE 
 +    
 +  --- Physical volume --- 
 +  PV Name               /dev/sdb9 
 +  VG Name               vg0 
 +  PV Size               400.00 MiB / not usable 8.00 MiB 
 +  Allocatable           yes  
 +  PE Size               8.00 MiB 
 +  Total PE              49 
 +  Free PE               49 
 +  Allocated PE          0 
 +  PV UUID               UhD7RK-T8QS-nUAV-Sh0X-4JXp-Cbju-f8o2yC 
 +    
 +  --- Physical Segments --- 
 +  Physical extent 0 to 48: 
 +    FREE
 </code> </code>
  
-====Copier et Déplacer des Fichiers====+La suppression du miroir se fait en utilisant la commande **lvconvert** en indiquant quel volume physique doit être vidé de son contenu : 
 + 
 +<code> 
 +[root@redhat9 ~]# lvconvert -m 0 /dev/vg0/lv1 /dev/sdb7 
 +Are you sure you want to convert raid1 LV vg0/lv1 to type linear losing all resilience? [y/n]: y 
 +  Logical volume vg0/lv1 successfully converted. 
 +</code>
  
-Créez deux fichiers **file1** et **file2** en tant que l'utilisateur **trainee** puis visualisez les SC des fichiers :+De même, il est possible de créer un miroir pour un volume logique existant :
  
 <code> <code>
-[root@centos7 /]# exit +[root@redhat9 ~]# lvconvert -m 1 /dev/vg0/lv1 
-logout +Are you sure you want to convert linear LV vg0/lv1 to raid1 with 2 images enhancing resilience? [y/n]: y 
-[trainee@centos7 ~]$ touch file1 file2 +  Logical volume vg0/lv1 successfully converted.
-[trainee@centos7 ~]$ ls -Z file* +
--rw-rw-r--. trainee trainee unconfined_u:object_r:user_home_t:s0 file1 +
--rw-rw-r--trainee trainee unconfined_u:object_r:user_home_t:s0 file2+
 </code> </code>
  
-Notez que le type des deux fichiers est **user_home_t**.+Supprimez de nouveau votre miroir :
  
-Copiez maintenant le fichier **file1** vers **/tmp** en utilisant la commande **cp** et visualiser son SC :+<code> 
 +[root@redhat9 ~]# lvconvert -m 0 /dev/vg0/lv1 /dev/sdb7 
 +Are you sure you want to convert raid1 LV vg0/lv1 to type linear losing all resilience? [y/n]: y 
 +  Logical volume vg0/lv1 successfully converted. 
 +</code> 
 + 
 +Les options de la commande **lvconvert** sont :
  
 <code> <code>
-[trainee@centos7 ~]$ cp file1 /tmp +[root@redhat9 ~]# lvconvert --help 
-[trainee@centos7 ~]$ ls -Z /tmp/file1 +  lvconvert - Change logical volume layout 
--rw-rw-r--. trainee trainee unconfined_u:object_r:user_tmp_t:s0 /tmp/file1+ 
 +  Convert LV to linear. 
 +  lvconvert --type linear LV 
 +        COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Convert LV to striped. 
 +  lvconvert --type striped LV 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ -R|--regionsize Size[m|UNIT] ] 
 +        [ -i|--interval Number ] 
 +        [    --stripes Number ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Convert LV to type mirror (also see type raid1), 
 +  lvconvert --type mirror LV 
 +        [ -m|--mirrors [+|-]Number ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ -R|--regionsize Size[m|UNIT] ] 
 +        [ -i|--interval Number ] 
 +        [    --stripes Number ] 
 +        [    --mirrorlog core|disk ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Convert LV to raid or change raid layout  
 +  (a specific raid level must be used, e.g. raid1). 
 +  lvconvert --type raid LV 
 +        [ -m|--mirrors [+|-]Number ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ -R|--regionsize Size[m|UNIT] ] 
 +        [ -i|--interval Number ] 
 +        [    --stripes Number ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Convert LV to raid1 or mirror, or change number of mirror images. 
 +  lvconvert -m|--mirrors [+|-]Number LV 
 +        [ -R|--regionsize Size[m|UNIT] ] 
 +        [ -i|--interval Number ] 
 +        [    --mirrorlog core|disk ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Convert raid LV to change number of stripe images. 
 +  lvconvert --stripes Number LV 
 +        [ -i|--interval Number ] 
 +        [ -R|--regionsize Size[m|UNIT] ] 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Convert raid LV to change the stripe size. 
 +  lvconvert -I|--stripesize Size[k|UNIT] LV 
 +        [ -i|--interval Number ] 
 +        [ -R|--regionsize Size[m|UNIT] ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Split images from a raid1 or mirror LV and use them to create a new LV. 
 +  lvconvert --splitmirrors Number -n|--name LV_new LV 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Split images from a raid1 LV and track changes to origin for later merge. 
 +  lvconvert --splitmirrors Number --trackchanges LV 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Merge LV images that were split from a raid1 LV. 
 +  lvconvert --mergemirrors VG|LV|Tag ... 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Convert LV to a thin LV, using the original LV as an external origin. 
 +  lvconvert --type thin --thinpool LV LV 
 +        [ -T|--thin ] 
 +        [ -r|--readahead auto|none|Number ] 
 +        [ -c|--chunksize Size[k|UNIT] ] 
 +        [ -Z|--zero y|n ] 
 +           --originname LV_new ] 
 +        [    --poolmetadata LV ] 
 +        [    --poolmetadatasize Size[m|UNIT] ] 
 +        [    --poolmetadataspare y|n ] 
 +        [    --metadataprofile String ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Convert LV to a thin LV, using LV as thin-pool data volume. 
 +  lvconvert --type thin LV 
 +        [ -T|--thin ] 
 +        [ -r|--readahead auto|none|Number ] 
 +        [ -c|--chunksize Size[k|UNIT] ] 
 +        [ -Z|--zero y|n ] 
 +        [    --poolmetadata LV ] 
 +        [    --poolmetadatasize Size[m|UNIT] ] 
 +        [    --poolmetadataspare y|n ] 
 +        [    --metadataprofile String ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Attach a cache pool to an LV, converts the LV to type cache. 
 +  lvconvert --type cache --cachepool LV LV 
 +        [ -H|--cache ] 
 +        [ -Z|--zero y|n ] 
 +        [ -r|--readahead auto|none|Number ] 
 +        [ -c|--chunksize Size[k|UNIT] ] 
 +        [    --cachemetadataformat auto|1|2 ] 
 +        [    --cachemode writethrough|writeback|passthrough ] 
 +        [    --cachepolicy String ] 
 +        [    --cachesettings String ] 
 +        [    --poolmetadata LV ] 
 +        [    --poolmetadatasize Size[m|UNIT] ] 
 +        [    --poolmetadataspare y|n ] 
 +        [    --metadataprofile String ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Attach a writecache to an LV, converts the LV to type writecache. 
 +  lvconvert --type writecache --cachevol LV LV 
 +        [    --cachesettings String ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Attach a cache to an LV, converts the LV to type cache. 
 +  lvconvert --type cache --cachevol LV LV 
 +        [ -H|--cache ] 
 +        [ -Z|--zero y|n ] 
 +        [ -c|--chunksize Size[k|UNIT] ] 
 +        [    --cachemetadataformat auto|1|2 ] 
 +        [    --cachemode writethrough|writeback|passthrough ] 
 +        [    --cachepolicy String ] 
 +        [    --cachesettings String ] 
 +        [    --poolmetadatasize Size[m|UNIT] ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Add a writecache to an LV, using a specified cache device. 
 +  lvconvert --type writecache --cachedevice PV LV 
 +        [    --cachesize Size[m|UNIT] ] 
 +        [    --cachesettings String ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Add a cache to an LV, using a specified cache device. 
 +  lvconvert --type cache --cachedevice PV LV 
 +        [ -c|--chunksize Size[k|UNIT] ] 
 +        [    --cachesize Size[m|UNIT] ] 
 +        [    --cachesettings String ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Convert LV to type thin-pool. 
 +  lvconvert --type thin-pool LV 
 +        [ -I|--stripesize Size[k|UNIT] ] 
 +        [ -r|--readahead auto|none|Number ] 
 +        [ -c|--chunksize Size[k|UNIT] ] 
 +        [ -Z|--zero y|n ] 
 +        [    --stripes Number ] 
 +        [    --discards passdown|nopassdown|ignore ] 
 +        [    --errorwhenfull y|n ] 
 +        [    --poolmetadata LV ] 
 +        [    --poolmetadatasize Size[m|UNIT] ] 
 +        [    --poolmetadataspare y|n ] 
 +        [    --metadataprofile String ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Convert LV to type cache-pool. 
 +  lvconvert --type cache-pool LV 
 +        [ -Z|--zero y|n ] 
 +        [ -r|--readahead auto|none|Number ] 
 +        [ -c|--chunksize Size[k|UNIT] ] 
 +        [    --cachemetadataformat auto|1|2 ] 
 +        [    --cachemode writethrough|writeback|passthrough ] 
 +        [    --cachepolicy String ] 
 +        [    --cachesettings String ] 
 +        [    --poolmetadata LV ] 
 +        [    --poolmetadatasize Size[m|UNIT] ] 
 +        [    --poolmetadataspare y|n ] 
 +        [    --metadataprofile String ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Convert LV to type vdopool. 
 +  lvconvert --type vdo-pool LV 
 +        [ -n|--name LV_new ] 
 +        [ -V|--virtualsize Size[m|UNIT] ] 
 +        [ -r|--readahead auto|none|Number ] 
 +        [ -Z|--zero y|n ] 
 +        [    --metadataprofile String ] 
 +        [    --compression y|n ] 
 +        [    --deduplication y|n ] 
 +        [    --vdosettings String ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Detach a cache from an LV. 
 +  lvconvert --splitcache LV 
 +        [    --cachesettings String ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Merge thin LV into its origin LV. 
 +  lvconvert --mergethin LV ... 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Merge COW snapshot LV into its origin. 
 +  lvconvert --mergesnapshot LV ... 
 +        [ -i|--interval Number ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Combine a former COW snapshot (second arg) with a former  
 +  origin LV (first arg) to reverse a splitsnapshot command. 
 +  lvconvert --type snapshot LV LV 
 +        [ -s|--snapshot ] 
 +        [ -c|--chunksize Size[k|UNIT] ] 
 +        [ -Z|--zero y|n ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Replace failed PVs in a raid or mirror LV.  
 +  Repair a thin pool.  
 +  Repair a cache pool. 
 +  lvconvert --repair LV 
 +        [ -i|--interval Number ] 
 +        [ -k|--setactivationskip y|n ] 
 +        [    --usepolicies ] 
 +        [    --poolmetadataspare y|n ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Replace specific PV(s) in a raid LV with another PV. 
 +  lvconvert --replace PV LV 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Poll LV to continue conversion. 
 +  lvconvert --startpoll LV 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Add or remove data integrity checksums to raid images. 
 +  lvconvert --raidintegrity y|n LV 
 +        [    --raidintegritymode String ] 
 +        [    --raidintegrityblocksize Number ] 
 +        [ COMMON_OPTIONS ] 
 +        [ PV ... ] 
 + 
 +  Common options for command: 
 +        [ -b|--background ] 
 +        [ -f|--force ] 
 +        [    --alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit ] 
 +        [    --noudevsync ] 
 + 
 +  Common options for lvm: 
 +        [ -d|--debug ] 
 +        [ -h|--help ] 
 +        [ -q|--quiet ] 
 +        [ -v|--verbose ] 
 +        [ -y|--yes ] 
 +        [ -t|--test ] 
 +        [    --commandprofile String ] 
 +        [    --config String ] 
 +        [    --driverloaded y|n ] 
 +        [    --nolocking ] 
 +        [    --lockopt String ] 
 +        [    --longhelp ] 
 +        [    --profile String ] 
 +        [    --version ] 
 +        [    --devicesfile String ] 
 +        [    --devices PV ] 
 +        [    --nohints ] 
 +        [    --journal String ] 
 + 
 +  Use --longhelp to show all options and advanced commands.
 </code> </code>
  
-Notez que le fichier ainsi copié a hérité du **type** du répertoire parent, à savoir **tmp_t**.+====LAB #8 - Modifier les Attributs LVM====
  
-Déplacez maintenant le fichier **file2** dans le répertoire **/tmp** et contrôlez son SC :+En cas de présence d'un miroir, la commande **lvs** indique la présence du miroir dans la colonne **Attr** avec la lettre **m** :
  
 <code> <code>
-[trainee@centos7 ~]$ mv file2 /tmp +[root@redhat9 ~]# lvs 
-[trainee@centos7 ~]$ ls -Z /tmp/file2 +  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert 
--rw-rw-r--. trainee trainee unconfined_u:object_r:user_home_t:s0 /tmp/file2+  root rhel -wi-ao---- <44.00g                                                     
 +  swap rhel -wi-ao----   5.00g                                                     
 +  lv1  vg0  -wi-a----- 104.00m                                                                                                
 </code> </code>
  
-Notez que la commande **mv** maintient le **type** d'origine.+<WRAP center round important 60%> 
 +Consultez **[[http://www.unixarena.com/2013/08/redhat-linux-lvm-volume-attributes.html|cette page]]** pour comprendre les attributs. 
 +</WRAP>
  
-====Vérifier les SC des Processus====+La commande equivalente pour les Volume Groups est **vgs** :
  
-Il convient d'utiliser l'option **Z** avec la commande **ps** :+<code> 
 +[root@redhat9 ~]# vgs 
 +  VG   #PV #LV #SN Attr   VSize   VFree   
 +  rhel       0 wz--n- <49.00g      0  
 +  vg0    3     0 wz--n- 880.00m 776.00m 
 +</code> 
 + 
 +<WRAP center round important 60%> 
 +Consultez **[[http://www.unixarena.com/2013/08/redhat-linux-lvm-volume-attributes.html|cette page]]** pour comprendre les attributs. 
 +</WRAP> 
 + 
 +La commande equivalente pour les Physical Volumes est **pvs** :
  
 <code> <code>
-[trainee@centos7 ~]$ ps auxZ | more +[root@redhat9 ~]# pvs 
-LABEL                           USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND +  PV         VG   Fmt  Attr PSize   PFree   
-system_u:system_r:init_t:s0     root          0.0  1.2  46140  6456 ?        Ss   juin17   0:27 /usr/lib/systemd/systemd --system -- +  /dev/sda2  rhel lvm2 a--  <49.00g      0  
-deserialize 24 +  /dev/sdb6  vg0  lvm2 a--  192.00m  88.00m 
-system_u:system_r:kernel_t:s0   root         2  0.0  0.0      0     0 ?        S    juin17   0:00 [kthreadd] +  /dev/sdb7  vg0  lvm2 a--  296.00m 296.00m 
-system_u:system_r:kernel_t:s0   root          0.0  0.0      0     0 ?        S    juin17   0:25 [ksoftirqd/0] +  /dev/sdb9  vg0  lvm2 a--  392.00m 392.00m    
-system_u:system_r:kernel_t:s0   root          0.0  0.0      0     0 ?        S<   juin17   0:00 [kworker/0:0H] +
-system_u:system_r:kernel_t:s0   root          0.0  0.0      0     0 ?        S    juin17   0:00 [kworker/u2:0] +
-system_u:system_r:kernel_t:s0   root          0.0  0.0      0     0 ?        S    juin17   0:00 [migration/0] +
-system_u:system_r:kernel_t:s0   root          0.0  0.         0 ?        S    juin17   0:00 [rcu_bh] +
-system_u:system_r:kernel_t:s0   root          0.0  0.0      0     0 ?        S    juin17   0:17 [rcu_sched] +
-system_u:system_r:kernel_t:s0   root        10  0.0  0.0      0     0 ?        S    juin17   0:01 [watchdog/0] +
-system_u:system_r:kernel_t:s0   root        12  0.0  0.0      0     0 ?        S    juin17   0:00 [kdevtmpfs] +
-system_u:system_r:kernel_t:s0   root        13  0. 0.0      0     0 ?        S<   juin17   0:00 [netns] +
-system_u:system_r:kernel_t:s0   root        14  0.0  0.0      0     0 ?        S    juin17   0:00 [khungtaskd] +
-system_u:system_r:kernel_t:s0   root        15  0.0  0.0      0     0 ?        S<   juin17   0:00 [writeback] +
-system_u:system_r:kernel_t:s0   root        16  0.0  0.0      0     0 ?        S<   juin17   0:00 [kintegrityd] +
-system_u:system_r:kernel_t:s0   root        17  0.0  0.0      0     0 ?        S<   juin17   0:00 [bioset] +
-system_u:system_r:kernel_t:s0   root        18  0.0  0.0      0     0 ?        S<   juin17   0:00 [kblockd] +
-system_u:system_r:kernel_t:s0   root        19  0.0  0.0      0     0 ?        S<   juin17   0:00 [md] +
-system_u:system_r:kernel_t:s0   root        25  0.0  0.0      0     0 ?        S    juin17   0:05 [kswapd0] +
-system_u:system_r:kernel_t:s0   root        26  0.0  0.0      0     0 ?        SN   juin17   0:00 [ksmd] +
-system_u:system_r:kernel_t:s0   root        27  0.0  0.0      0     0 ?        S<   juin17   0:00 [crypto] +
-system_u:system_r:kernel_t:s0   root        35  0.0  0.0      0     0 ?        S<   juin17   0:00 [kthrotld] +
-system_u:system_r:kernel_t:s0   root        37  0.0  0.0      0     0 ?        S<   juin17   0:00 [kmpath_rdacd] +
-system_u:system_r:kernel_t:s0   root        38  0.0  0.0      0     0 ?        S<   juin17   0:00 [kpsmoused] +
-system_u:system_r:kernel_t:s0   root        39  0.0  0.0      0     0 ?        S<   juin17   0:00 [ipv6_addrconf] +
-system_u:system_r:kernel_t:s0   root        59  0.0  0.0      0     0 ?        S<   juin17   0:00 [deferwq] +
-system_u:system_r:kernel_t:s0   root        94  0.0  0.0      0     0 ?        S    juin17   0:00 [kauditd] +
-system_u:system_r:kernel_t:s0   root       226  0.0  0.0      0     0 ?        S<   juin17   0:00 [ata_sff] +
-system_u:system_r:kernel_t:s0   root       238  0.0  0.0      0     0 ?        S    juin17   0:00 [scsi_eh_0] +
-system_u:system_r:kernel_t:s0   root       240  0.0  0.0      0     0 ?        S<   juin17   0:00 [scsi_tmf_0] +
-system_u:system_r:kernel_t:s0   root       241  0.0  0.0      0     0 ?        S    juin17   0:00 [scsi_eh_1] +
-system_u:system_r:kernel_t:s0   root       242  0.0  0.0      0     0 ?        S    juin17   0:02 [kworker/u2:2] +
-system_u:system_r:kernel_t:s0   root       243  0.0  0.0      0     0 ?        S<   juin17   0:00 [scsi_tmf_1] +
-system_u:system_r:kernel_t:s0   root       244  0.0  0.0      0     0 ?        S    juin17   0:00 [scsi_eh_2] +
---Plus--+
 </code> </code>
  
-====Visualiser la SC d'un Utilisateur====+<WRAP center round important 60%> 
 +Consultez **[[http://www.unixarena.com/2013/08/redhat-linux-lvm-volume-attributes.html|cette page]]** pour comprendre les attributs. 
 +</WRAP>
  
-Utilisez l'option **-Z** avec la commande **id** :+Les commandes **lvchange**, **vgchange** et **pvchange** permettent de modifier les attributs des Logical Volumes, Volume Groups et Physical Volumes respectivement. 
 + 
 +Par exemple, pour rendre inutilisable un Logical Volume, il convient d'enlever l'attribut **a** :
  
 <code> <code>
-[trainee@centos7 ~]$ id -Z +[root@redhat9 ~]# lvchange -a n /dev/vg0/lv1 
-unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023+ 
 +[root@redhat9 ~]# lvs 
 +  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert 
 +  root rhel -wi-ao---- <44.00g                                                     
 +  swap rhel -wi-ao----   5.00g                                                     
 +  lv1  vg0  -wi------104.00m                                                    
 </code> </code>
  
-Notez que vous ne pouvez pas consulter le SC d'un autre utilisateur :+Pour faire l'inverse il convient de saisir la commande suivante :
  
 <code> <code>
-[trainee@centos7 ~]$ id root +[root@redhat9 ~]# lvchange -a y /dev/vg0/lv1 
-uid=0(root) gid=0(root) groupes=0(root) + 
-[trainee@centos7 ~]$ id -Z root +[root@redhat9 ~]# lvs 
-id: impossible d'afficher le contexte de sécurité quand un utilisateur est indiqué+  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert 
 +  root rhel -wi-ao---- <44.00g                                                     
 +  swap rhel -wi-ao----   5.00g                                                     
 +  lv1  vg0  -wi-a----- 104.00m 
 </code> </code>
  
-====Vérifier la SC d'un fichier====+Les options de la commande **lvchange** sont : 
 + 
 +<code> 
 +[root@redhat9 ~]# lvchange --help 
 +  lvchange - Change the attributes of logical volume(s) 
 + 
 +  Change a general LV attribute.  
 +  For options listed in parentheses, any one is  
 +  required, after which the others are optional. 
 +  lvchange 
 +        ( -C|--contiguous y|n, 
 +          -p|--permission rw|r, 
 +          -r|--readahead auto|none|Number, 
 +          -k|--setactivationskip y|n, 
 +          -Z|--zero y|n, 
 +          -M|--persistent n, 
 +             --addtag Tag, 
 +             --deltag Tag, 
 +             --alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit, 
 +             --compression y|n, 
 +             --deduplication y|n, 
 +             --detachprofile, 
 +             --metadataprofile String, 
 +             --profile String, 
 +             --setautoactivation y|n, 
 +             --errorwhenfull y|n, 
 +             --discards passdown|nopassdown|ignore, 
 +             --cachemode writethrough|writeback|passthrough, 
 +             --cachepolicy String, 
 +             --cachesettings String, 
 +             --minrecoveryrate Size[k|UNIT], 
 +             --maxrecoveryrate Size[k|UNIT], 
 +             --vdosettings String, 
 +             --writebehind Number, 
 +             --writemostly PV[:t|n|y] ) 
 +         VG|LV|Tag|Select ... 
 +        [ -a|--activate y|n|ay ] 
 +        [    --poll y|n ] 
 +        [    --monitor y|n ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Resyncronize a mirror or raid LV.  
 +  Use to reset 'R' attribute on a not initially synchronized LV. 
 +  lvchange --resync VG|LV|Tag|Select ... 
 +        [ -a|--activate y|n|ay ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Resynchronize or check a raid LV. 
 +  lvchange --syncaction check|repair VG|LV|Tag|Select ... 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Reconstruct data on specific PVs of a raid LV. 
 +  lvchange --rebuild PV VG|LV|Tag|Select ... 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Activate or deactivate an LV. 
 +  lvchange -a|--activate y|n|ay VG|LV|Tag|Select ... 
 +        [ -P|--partial ] 
 +        [ -K|--ignoreactivationskip ] 
 +        [    --activationmode partial|degraded|complete ] 
 +        [    --poll y|n ] 
 +        [    --monitor y|n ] 
 +        [    --ignorelockingfailure ] 
 +        [    --sysinit ] 
 +        [    --readonly ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Reactivate an LV using the latest metadata. 
 +  lvchange --refresh VG|LV|Tag|Select ... 
 +        [ -P|--partial ] 
 +        [    --activationmode partial|degraded|complete ] 
 +        [    --poll y|n ] 
 +        [    --monitor y|n ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Start or stop monitoring an LV from dmeventd. 
 +  lvchange --monitor y|n VG|LV|Tag|Select ... 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Start or stop processing an LV conversion. 
 +  lvchange --poll y|n VG|LV|Tag|Select ... 
 +        [    --monitor y|n ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Make the minor device number persistent for an LV. 
 +  lvchange -M|--persistent y --minor Number LV 
 +        [ -j|--major Number ] 
 +        [ -a|--activate y|n|ay ] 
 +        [    --poll y|n ] 
 +        [    --monitor y|n ] 
 +        [ COMMON_OPTIONS ] 
 + 
 +  Common options for command: 
 +        [ -A|--autobackup y|n ] 
 +        [ -f|--force ] 
 +        [ -S|--select String ] 
 +        [    --ignoremonitoring ] 
 +        [    --noudevsync ] 
 +        [    --reportformat basic|json|json_std ] 
 + 
 +  Common options for lvm: 
 +        [ -d|--debug ] 
 +        [ -h|--help ] 
 +        [ -q|--quiet ] 
 +        [ -v|--verbose ] 
 +        [ -y|--yes ] 
 +        [ -t|--test ] 
 +        [    --commandprofile String ] 
 +        [    --config String ] 
 +        [    --driverloaded y|n ] 
 +        [    --nolocking ] 
 +        [    --lockopt String ] 
 +        [    --longhelp ] 
 +        [    --profile String ] 
 +        [    --version ] 
 +        [    --devicesfile String ] 
 +        [    --devices PV ] 
 +        [    --nohints ] 
 +        [    --journal String ] 
 + 
 +  Use --longhelp to show all options and advanced commands. 
 +</code> 
 + 
 +====LAB #9 - Volumes Logiques en Bandes==== 
 + 
 +Un volume logique en bandes est créé pour augmenter, comme dans le cas du RAID, les performances des entrées et sorties. Pour créer ce volume, la commande **lvcreate** prend deux option supplémentaires : 
 + 
 +  * **-i** - indique le nombre de volumes de bandes, 
 +  * **-I** - indique la taille en Ko de chaque bande.
  
-Il convient d'utiliser la commande ls avec l'option **-Z** :+Saisissez donc la commande suivante :
  
 <code> <code>
-[trainee@centos7 ~]$ cd /etc +[root@redhat9 ~]# lvcreate -i2 -I64 -n lv2 -L 100M vg0 /dev/sdb7 /dev/sdb9 
-[trainee@centos7 etc]$ ls -Z l* -+  Rounding up size to full physical extent 104.00 MiB 
--rw-r--r--. root root unconfined_u:object_r:ld_so_cache_t:s0 ld.so.cache +  Rounding size 104.00 MiB (13 extents) up to stripe boundary size 112.00 MiB (14 extents)
--rw-r--r--. root root system_u:object_r:etc_t:s0       ld.so.conf +  Logical volume "lv2" created.
-drwxr-xr-x. root root system_u:object_r:etc_t:s0       ld.so.conf.d +
--rw-r-----. root root system_u:object_r:etc_t:s0       libaudit.conf +
-drwxr-xr-x. root root system_u:object_r:etc_t:s0       libnl +
-drwxr-xr-x. root root system_u:object_r:etc_t:s0       libreport +
--rw-r--r--. root root unconfined_u:object_r:etc_t:s0   libuser.conf +
--rw-r--r--. root root unconfined_u:object_r:locale_t:s0 locale.conf +
-lrwxrwxrwx. root root unconfined_u:object_r:locale_t:s0 localtime -> ../usr/share/zoneinfo/Europe/Paris +
--rw-r--r--. root root unconfined_u:object_r:etc_t:s0   login.defs +
--rw-r--r--root root system_u:object_r:etc_t:s0       logrotate.conf +
-drwxr-xr-xroot root system_u:object_r:etc_t:s0       logrotate.d +
-drwxr-xr-xroot root system_u:object_r:etc_t:s0       lsm +
-drwxr-xr-x. root root system_u:object_r:lvm_etc_t:s0   lvm+
 </code> </code>
  
-====Troubleshooting SELinux====+Constatez la présence de vos bandes sur /dev/sda7 et sur /dev/sda9 :
  
-L'interprétation des messages journalisés de %%SELinux%% est souvent la clef d'un dépannage efficace et rapide.+<code> 
 +[root@redhat9 ~]# lvdisplay -m /dev/vg0/lv2 
 +  --- Logical volume --- 
 +  LV Path                /dev/vg0/lv2 
 +  LV Name                lv2 
 +  VG Name                vg0 
 +  LV UUID                rgVJEa-mbyk-nQhm-rLt0-EqPB-QyI3-zyG2qX 
 +  LV Write Access        read/write 
 +  LV Creation host, time redhat9.ittraining.loc, 2024-10-23 15:49:12 +0200 
 +  LV Status              available 
 +  # open                 0 
 +  LV Size                112.00 MiB 
 +  Current LE             14 
 +  Segments               1 
 +  Allocation             inherit 
 +  Read ahead sectors     auto 
 +  - currently set to     512 
 +  Block device           253:
 +    
 +  --- Segments --- 
 +  Logical extents 0 to 13: 
 +    Type                striped 
 +    Stripes             2 
 +    Stripe size         64.00 KiB 
 +    Stripe 0: 
 +      Physical volume   /dev/sdb7 
 +      Physical extents  0 to 6 
 +    Stripe 1: 
 +      Physical volume   /dev/sdb9 
 +      Physical extents  0 to 6 
 +</code>
  
-Si le démon **auditd** est démarré, les messages de %%SELinux%% sont consignés dans le fichier **/var/log/audit/audit.log**. Dans le cas contraire, les mêmes messages sont consignés dans le fichier **/var/log/messages**. Dans les deux cas, chaque message de %%SELinux%% contient le mot clef **AVC** +Utilisez maintenant la commande **lvs** pour visualiser les volumes physiques utilisés par le volume logique :
  
-===La commande chcon===+<code> 
 +[root@redhat9 ~]# lvs -o +devices 
 +  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices                   
 +  root rhel -wi-ao---- <44.00g                                                     /dev/sda2(1280)           
 +  swap rhel -wi-ao----   5.00g                                                     /dev/sda2(0)              
 +  lv1  vg0  -wi-a----- 104.00m                                                     /dev/sdb6(1)              
 +  lv2  vg0  -wi-a----- 112.00m                                                     /dev/sdb7(0),/dev/sdb9(0) 
 +</code>
  
-La commande **chcon** permet de modifier //temporairement// une SC.+====LAB #10 - Gérer les Métadonnées==== 
 + 
 +Les métadonnées pour chaque Volume Group sont stockés dans un fichier texte au nom du Volume Group dans le répertoire **/etc/lvm/backup** :
  
 <code> <code>
-[trainee@centos7 etc]$ cd ~ +[root@redhat9 ~]# cat /etc/lvm/backup/vg0 
-[trainee@centos7 ~]$ chcon --help +# Generated by LVM2 version 2.03.23(2) (2023-11-21)Wed Oct 23 15:49:12 2024
-Utilisation : chcon [OPTION]... CONTEXT FILE... +
-         ou : chcon [OPTION]... [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE... +
-         ou chcon [OPTION]... --reference=RFILE FILE... +
-Modifier le contexte de sécurité SELinux de chaque FILE en CONTEXT. +
-Avec --reference, modifier le contexte de sécurité de chaque FILE à +
-celui de RFILE.+
  
-Les arguments obligatoires pour les options longues le sont aussi pour les +contents "Text Format Volume Group" 
-options courtes. +version 1
-      --dereference      affecter le référent de chaque lien symbolique (par +
-                           défaut), au lieu du lien symbolique lui-même +
-  -h, --no-dereference   affecter les liens symboliques au lieu des fichiers +
-                           référencés +
-  -u, --user=USER        définir l'utilisateur USER dans le contexte de +
-                           sécurité cible +
-  -r, --role=ROLE        définir le rôle ROLE dans le contexte de sécurité cible +
-  -t, --type=TYPE        définir le type TYPE dans le contexte de sécurité cible +
-  -l, --range=RANGE      définir l'intervalle RANGE dans le contexte de +
-                         sécurité cible +
-      --no-preserve-root ne pas traiter « / » de manière spéciale (par défaut) +
-      --preserve-root    bloquer le traitement récursif sur « / » +
-      --reference=RFILE  utiliser le contexte de sécurité de RFILE au lieu +
-                           d'indiquer une valeur CONTEXT +
-  -R, --recursive        opérer récursivement sur les fichiers et répertoires +
-  -v, --verbose          afficher un diagnostic pour chaque fichier traité+
  
-Les options suivantes modifient la façon de parcourir la hiérarchie lorsque +description = "Created *after* executing 'lvcreate -i2 -I64 -n lv2 -L 100M vg0 /dev/sdb7 /dev/sdb9'"
-l'option -R est aussi indiquée. Si plusieurs options sont indiquées, seule la +
-dernière sera prise en compte.+
  
-  -H                     si l'argument en ligne de commande est un lien +creation_host = "redhat9.ittraining.loc"        # Linux redhat9.ittraining.loc 5.14.0-427.37.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Sep 13 12:41:50 EDT 2024 x86_64 
-                           symbolique vers un répertoire, le parcourir +creation_time = 1729691352      # Wed Oct 23 15:49:12 2024
-  -L                     parcourir tous les liens symboliques menant à un +
-                           répertoire +
-  -P                     ne parcourir aucun lien symbolique (par défaut)+
  
-      --help     afficher l'aide et quitter +vg0 { 
-      --version  afficher des informations de version et quitter+        id = "akzcF6-eQ28-j9Xa-Cuiq-KioO-dAKJ-GEK034" 
 +        seqno = 11 
 +        format = "lvm2"                 # informational 
 +        status = ["RESIZEABLE", "READ", "WRITE"
 +        flags = [] 
 +        extent_size = 16384             # 8 Megabytes 
 +        max_lv = 0 
 +        max_pv = 0 
 +        metadata_copies = 0
  
-Aide en ligne de GNU coreutils : <http://www.gnu.org/software/coreutils/> +        physical_volumes { 
-Signalez les problèmes de traduction de « chcon » à <traduc@traduc.org> + 
-Utilisez « info coreutils 'chcon invocation' » pour toute la documentation+                pv0 { 
 +                        id = "TnqoyD-LQvR-pHro-wlud-vVUq-Kime-xuVTJD" 
 +                        device = "/dev/sdb6"    # Hint only 
 + 
 +                        device_id_type = "sys_wwid" 
 +                        device_id = "t10.ATA_QEMU_HARDDISK_QM00005" 
 +                        status = ["ALLOCATABLE"
 +                        flags = [] 
 +                        dev_size = 409600       # 200 Megabytes 
 +                        pe_start = 2048 
 +                        pe_count = 24   # 192 Megabytes 
 +                } 
 + 
 +                pv1 { 
 +                        id = "eff83E-hlnA-FWdf-VQzX-c3dP-dsDf-3dvhik" 
 +                        device = "/dev/sdb7"    # Hint only 
 + 
 +                        device_id_type = "sys_wwid" 
 +                        device_id = "t10.ATA_QEMU_HARDDISK_QM00005" 
 +                        status = ["ALLOCATABLE"
 +                        flags = [] 
 +                        dev_size = 614400       # 300 Megabytes 
 +                        pe_start = 2048 
 +                        pe_count = 37   # 296 Megabytes 
 +                } 
 + 
 +                pv2 { 
 +                        id = "UhD7RK-T8QS-nUAV-Sh0X-4JXp-Cbju-f8o2yC" 
 +                        device = "/dev/sdb9"    # Hint only 
 + 
 +                        device_id_type = "sys_wwid" 
 +                        device_id = "t10.ATA_QEMU_HARDDISK_QM00005" 
 +                        status = ["ALLOCATABLE"
 +                        flags = [] 
 +                        dev_size = 819200       # 400 Megabytes 
 +                        pe_start = 2048 
 +                        pe_count = 49   # 392 Megabytes 
 +                } 
 +        } 
 + 
 +        logical_volumes { 
 + 
 +                lv1 { 
 +                        id = "L7FOYB-c0tG-dE1u-Oyod-LltI-PEcv-rebeIa" 
 +                        status = ["READ", "WRITE", "VISIBLE"
 +                        flags = [] 
 +                        creation_time = 1729690954      # 2024-10-23 15:42:34 +0200 
 +                        creation_host = "redhat9.ittraining.loc" 
 +                        segment_count = 1 
 + 
 +                        segment1 { 
 +                                start_extent = 0 
 +                                extent_count = 13       # 104 Megabytes 
 + 
 +                                type = "striped" 
 +                                stripe_count = 1        # linear 
 + 
 +                                stripes = [ 
 +                                        "pv0",
 +                                ] 
 +                        } 
 +                } 
 + 
 +                lv2 { 
 +                        id = "rgVJEa-mbyk-nQhm-rLt0-EqPB-QyI3-zyG2qX" 
 +                        status = ["READ", "WRITE", "VISIBLE"
 +                        flags = [] 
 +                        creation_time = 1729691352      # 2024-10-23 15:49:12 +0200 
 +                        creation_host = "redhat9.ittraining.loc" 
 +                        segment_count = 1 
 + 
 +                        segment1 { 
 +                                start_extent = 0 
 +                                extent_count = 14       # 112 Megabytes 
 + 
 +                                type = "striped" 
 +                                stripe_count = 2 
 +                                stripe_size = 128       # 64 Kilobytes 
 + 
 +                                stripes = [ 
 +                                        "pv1", 0, 
 +                                        "pv2",
 +                                ] 
 +                        } 
 +                } 
 +        } 
 + 
 +}
 </code> </code>
  
-Prenons le cas de la création d'un répertoire à la racine du système de fichiers afin d'y stocker les pages web du serveur apache :+Des archives sont créées lors de chaque modification d'un groupe de volumes et elles sont placés dans le répertoire **/etc/lvm/archives** :
  
 <code> <code>
-[trainee@centos7 ~]$ su - +[root@redhat9 ~]# ls /etc/lvm/archive/ 
-Mot de passe :  +rhel_00000-628100095.vg  vg0_00001-944764243.vg  vg0_00003-1616314336.vg  vg0_00005-1097824442.vg  vg0_00007-341212008.vg  vg0_00009-689917891.vg   vg0_00011-1035270871.vg 
-Dernière connexion : dimanche 17 juin 2018 à 20:21:42 CEST sur pts/1 +vg0_00000-565701167.vg   vg0_00002-556906173.vg  vg0_00004-1230709712.vg  vg0_00006-1896107975.vg  vg0_00008-439634752.vg  vg0_00010-1717657247.vg  vg0_00012-219256591.vg
-[root@centos7 ~]# mkdir /www +
-[root@centos7 ~]# touch /www/index.html+
 </code> </code>
  
-Installez maintenant le serveur Apache :+La commande **vgcfgbackup** est utilisée pour sauvegarder les métadonnées manuellement dans le fichier **/etc/lvm/backup/nom_du_volume_group** : 
 + 
 +La commande **vgcfgrestore** permet de restaurer une sauvegarde. Sans l'option **-f** pour spécifier la sauvegarde à restaurer, cette commande renvoie la liste des sauvegardes disponibles :
  
 <code> <code>
-[root@centos7 ~]# yum install httpd+[root@redhat9 ~]# vgcfgbackup vg0 
 +  Volume group "vg0" successfully backed up. 
 +</code> 
 + 
 +Il est aussi possible de modifier l'emplacement de la sauvegarde avec l'option **-f** de la commande : 
 + 
 +<code> 
 +[root@redhat9 ~]# vgcfgbackup -f /tmp/vg0_backup vg0 
 +  Volume group "vg0" successfully backed up. 
 +</code> 
 + 
 +Par contre, toute sauvegarde en dehors des répertoires par défaut n'est pas visible dans la sortie de la commande **vgcfgrestore --list** : 
 + 
 +<code> 
 +[root@redhat9 ~]# vgcfgbackup vg0 
 +  Volume group "vg0" successfully backed up. 
 +[root@redhat9 ~]# vgcfgrestore --list vg0 
 +    
 +  File:         /etc/lvm/archive/vg0_00000-565701167.vg 
 +  VG name:      vg0 
 +  Description:  Created *before* executing 'lvcreate -L 350 -n lv0 vg0' 
 +  Backup Time:  Wed Oct 23 15:19:32 2024 
 + 
 +    
 +  File:         /etc/lvm/archive/vg0_00001-944764243.vg 
 +  VG name:      vg0 
 +  Description:  Created *before* executing 'lvextend -L +100M /dev/vg0/lv0' 
 +  Backup Time:  Wed Oct 23 15:24:34 2024 
 + 
 +    
 +  File:         /etc/lvm/archive/vg0_00002-556906173.vg 
 +  VG name:      vg0 
 +  Description:  Created *before* executing 'lvcreate -s -L 5M -n testsnap /dev/vg0/lv0' 
 +  Backup Time:  Wed Oct 23 15:28:18 2024 
 + 
 +    
 +  File:         /etc/lvm/archive/vg0_00003-1616314336.vg 
 +  VG name:      vg0 
 +  Description:  Created *before* executing 'lvcreate -s -L 5M -n testsnap /dev/vg0/lv0' 
 +  Backup Time:  Wed Oct 23 15:28:18 2024 
 + 
 +    
 +  File:         /etc/lvm/archive/vg0_00004-1230709712.vg 
 +  VG name:      vg0 
 +  Description:  Created *before* executing 'lvremove /dev/vg0/testsnap' 
 +  Backup Time:  Wed Oct 23 15:33:25 2024 
 + 
 +    
 +  File:         /etc/lvm/archive/vg0_00005-1097824442.vg 
 +  VG name:      vg0 
 +  Description:  Created *before* executing 'lvremove /dev/vg0/testsnap' 
 +  Backup Time:  Wed Oct 23 15:33:25 2024 
 + 
 +    
 +  File:         /etc/lvm/archive/vg0_00006-1896107975.vg 
 +  VG name:      vg0 
 +  Description:  Created *before* executing 'lvremove /dev/vg0/lv0' 
 +  Backup Time:  Wed Oct 23 15:33:54 2024 
 + 
 +    
 +  File:         /etc/lvm/archive/vg0_00007-341212008.vg 
 +  VG name:      vg0 
 +  Description:  Created *before* executing 'lvcreate -m 1 -L 100M -n lv1 vg0' 
 +  Backup Time:  Wed Oct 23 15:42:34 2024 
 + 
 +    
 +  File:         /etc/lvm/archive/vg0_00008-439634752.vg 
 +  VG name:      vg0 
 +  Description:  Created *before* executing 'lvcreate -m 1 -L 100M -n lv1 vg0' 
 +  Backup Time:  Wed Oct 23 15:42:34 2024 
 + 
 +    
 +  File:         /etc/lvm/archive/vg0_00009-689917891.vg 
 +  VG name:      vg0 
 +  Description:  Created *before* executing 'lvconvert -m 0 /dev/vg0/lv1 /dev/sdb7' 
 +  Backup Time:  Wed Oct 23 15:44:01 2024 
 + 
 +    
 +  File:         /etc/lvm/archive/vg0_00010-1717657247.vg 
 +  VG name:      vg0 
 +  Description:  Created *before* executing 'lvconvert -m 1 /dev/vg0/lv1' 
 +  Backup Time:  Wed Oct 23 15:44:22 2024 
 + 
 +    
 +  File:         /etc/lvm/archive/vg0_00011-1035270871.vg 
 +  VG name:      vg0 
 +  Description:  Created *before* executing 'lvconvert -m 0 /dev/vg0/lv1 /dev/sdb7' 
 +  Backup Time:  Wed Oct 23 15:44:39 2024 
 + 
 +    
 +  File:         /etc/lvm/archive/vg0_00012-219256591.vg 
 +  VG name:      vg0 
 +  Description:  Created *before* executing 'lvcreate -i2 -I64 -n lv2 -L 100M vg0 /dev/sdb7 /dev/sdb9' 
 +  Backup Time:  Wed Oct 23 15:49:12 2024 
 + 
 +    
 +  File:         /etc/lvm/backup/vg0 
 +  VG name:      vg0 
 +  Description:  Created *after* executing 'vgcfgbackup vg0' 
 +  Backup Time:  Wed Oct 23 15:53:54 2024 
 +</code> 
 + 
 +=====RAID Logiciel===== 
 + 
 +=====Concepts RAID===== 
 + 
 +Les solutions RAID ou //Redundant Array of Independent Disks// ou encore //Redundant Array of Inexpensive Disks// permettent la combinaison de plusieurs disques de façon à ce que ceux-ci soient vu comme un seul disque logique. 
 + 
 +Les solutions RAID sont issues du travail fourni par l'université de Berkeley en Californie sur un projet de tolérances de pannes. Les systèmes RAID offre maintenant plusieurs avantages : 
 + 
 +    * Addition des capacités, 
 +    * Amélioration des performances, 
 +    * Apporter la tolérance de panne. 
 + 
 +Deux concepts sont fondamentaux à la compréhension des solutions RAID. 
 + 
 +====Disques en miroir==== 
 + 
 +La technique des disques en miroir consiste à dupliquer l'écriture des données sur plusieurs disques. Le miroir peut être géré par un logiciel ou par du matériel. 
 + 
 +====Bandes de données==== 
 + 
 +La technique des bandes de données, autrement appelée //data striping// consiste à couper les données à enregistrer en segments séquentiels et contigus pour les enregistrer sur plusieurs disques physiques. L'ensemble des segments constitue alors un disque logique ou //striped disk//. Cette technique peut être améliorée en déposant une bande de parité, calculée à partir des données des autres bandes, afin de pouvoir reconstituer une bande de données défaillante. 
 + 
 +=====Types de RAID===== 
 + 
 +====RAID 0 - Concaténation==== 
 + 
 +Création de volume par récupération de l'espace libre sur un ou plusieurs disques. Le principe de la concaténation est la création d'un volume à bandes où chaque bande est une tranche. 
 + 
 +{{:linux:raid0c.gif|}} 
 + 
 +===Avantages=== 
 + 
 +  * Récupération de l'espace disque. 
 + 
 +===Inconvénients=== 
 + 
 +  * Pas de protection des données, 
 +  * Pas d'augmentation des performances d'E/S. 
 + 
 +====RAID 0 - Striping==== 
 + 
 +Création de volume sur plusieurs disques afin d'augmenter les performances d'E/S. Le principe du striping est la création d'un volume à bandes réparties sur plusieurs tranches. La taille de la bande doit être fonction des données à écrire sur le volume (16k, 32k, 64k, etc.) Cette taille est choisie à la création du volume. 
 + 
 +{{:linux:raid0s.gif|}} 
 + 
 +===Avantages=== 
 + 
 +  * Augmentation des performances d'E/S par écriture en parallèle sur les disques. 
 + 
 +===Inconvénients=== 
 + 
 +  * Pas de protection des données. 
 + 
 +====RAID 1 - Miroir==== 
 + 
 +Création d'un volume où les disques sont en miroir. Quand les deux disques sont connectés à des contrôleurs de disques différents, on parle de //duplexing//
 + 
 +{{:linux:raid1m.gif|}} 
 + 
 +===Avantages=== 
 + 
 +  * Protection des données contre une défaillance d'un disque. 
 + 
 +===Inconvénients=== 
 + 
 +  * Coûteux à cause de l'augmentation du nombre de disques. 
 + 
 +====RAID 1+0 - Striping en Miroir==== 
 + 
 +Le RAID 1+0 ou encore 0+1 est une technique qui réunit le RAID 0 et le RAID 1. On l'appelle aussi un RAID **exotique**: 
 + 
 +{{:linux:raid10.gif|}} 
 + 
 +===Avantages=== 
 + 
 +  * Protection des données contre une défaillance d'un disque. 
 +  * Augmentation des performances d'E/S par écriture en parallèle sur les disques. 
 + 
 +===Inconvénients=== 
 + 
 +  * Coûteux à cause de l'augmentation du nombre de disques. 
 + 
 +====RAID 2 - Miroir avec Contrôle d'Erreurs==== 
 + 
 +Le RAID 2 est une technique de miroir avec contrôle de correction d'erreurs (EEC). De nos jours cette technique est peu utilisée, ayant été remplacée par les RAID 3, 4 et 5. 
 + 
 +====RAID 3 et 4 - Striping avec Parité==== 
 + 
 +Les RAID 3 et 4 sont des technologies avec bandes de parité distribuées sur un seul disque : 
 + 
 +{{:linux:raid34.gif|}} 
 + 
 +En RAID 3, la taille des segments n’est pas modifiable et est fixée à 512 octets (en RAID 3 : un segment = un secteur de disque dur = 512 octets). 
 + 
 +En RAID 4, la taille des segments est variable et se modifie en temps réel. Cela implique que les informations de parité doivent être mise à jour à chaque écriture afin de vérifier si la taille des segments a été modifiée.  
 + 
 +===Avantages=== 
 + 
 +  * Protection des données contre une défaillance d'un disque. 
 + 
 +===Inconvénients=== 
 + 
 +  * Création d'un goulot d'étranglement des données à cause de l'écriture des données de parité sur un seul disque. 
 + 
 +====RAID 5 - Striping avec Parité Distribuée==== 
 + 
 +Le RAID 5 est une technologie avec bandes de parité distribuées sur plusieurs disques : 
 + 
 +{{:linux:raid5.gif|}} 
 + 
 +===Avantages=== 
 + 
 +  * Protection des données contre une défaillance d'un disque, 
 +  * Evite le goulot d'étranglement d'un seul disque de parité. 
 + 
 +===Inconvénients=== 
 + 
 +  * Lecture moins performante qu'avec RAID 3 et 4. 
 + 
 +====Au délà de RAID 5==== 
 + 
 +Il existe aussi deux autres technologies RAID, toute deux issues de la technologie RAID 5 : 
 + 
 +  * RAID 6 
 +    * //Disk Striping with Double Distributed Parity// 
 +  * RAID TP 
 +    * //Disk Striping with Triple Distributed Parity// 
 + 
 +====LAB #11 - Mise en Place du RAID 5 Logiciel==== 
 + 
 +===11.1 - Préparer le disque=== 
 + 
 +Rappelez-vous avoir modifié les types de 4 partitions du disque **/dev/sdb** en **fd** : 
 + 
 +<code> 
 +[root@redhat9 ~]# fdisk -l 
 +Disk /dev/sda: 50 GiB, 53687091200 bytes, 104857600 sectors 
 +Disk model: QEMU HARDDISK    
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 +Disklabel type: dos 
 +Disk identifier: 0xd00dfc8a 
 + 
 +Device     Boot   Start       End   Sectors Size Id Type 
 +/dev/sda1  *       2048   2099199   2097152   1G 83 Linux 
 +/dev/sda2       2099200 104857599 102758400  49G 8e Linux LVM 
 + 
 + 
 +Disk /dev/sdb: 32 GiB, 34359738368 bytes, 67108864 sectors 
 +Disk model: QEMU HARDDISK    
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 +Disklabel type: dos 
 +Disk identifier: 0x23a56c2e 
 + 
 +Device     Boot   Start      End  Sectors  Size Id Type 
 +/dev/sdb1          2048   206847   204800  100M 83 Linux 
 +/dev/sdb2        206848   411647   204800  100M 83 Linux 
 +/dev/sdb3        411648   616447   204800  100M 83 Linux 
 +/dev/sdb4        616448 67108863 66492416 31.7G  5 Extended 
 +/dev/sdb5        618496  1642495  1024000  500M fd Linux raid autodetect 
 +/dev/sdb6       1644544  2054143   409600  200M 8e Linux LVM 
 +/dev/sdb7       2056192  2670591   614400  300M 8e Linux LVM 
 +/dev/sdb8       2672640  3696639  1024000  500M fd Linux raid autodetect 
 +/dev/sdb9       3698688  4517887   819200  400M 8e Linux LVM 
 +/dev/sdb10      4519936  5543935  1024000  500M fd Linux raid autodetect 
 +/dev/sdb11      5545984  6569983  1024000  500M fd Linux raid autodetect 
 +/dev/sdb12      6572032  6981631   409600  200M 83 Linux 
 + 
 +Disk /dev/sdc: 6 GiB, 6442450944 bytes, 12582912 sectors 
 +Disk model: QEMU HARDDISK    
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 + 
 + 
 +Disk /dev/sdd: 6 GiB, 6442450944 bytes, 12582912 sectors 
 +Disk model: QEMU HARDDISK    
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 + 
 + 
 +Disk /dev/sde: 32 GiB, 34359738368 bytes, 67108864 sectors 
 +Disk model: QEMU HARDDISK    
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 + 
 + 
 +Disk /dev/mapper/rhel-root: 44 GiB, 47240445952 bytes, 92266496 sectors 
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 + 
 + 
 +Disk /dev/mapper/rhel-swap: 5 GiB, 5368709120 bytes, 10485760 sectors 
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 + 
 + 
 +Disk /dev/mapper/vg0-lv1: 104 MiB, 109051904 bytes, 212992 sectors 
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 + 
 + 
 +Disk /dev/mapper/vg0-lv2: 112 MiB, 117440512 bytes, 229376 sectors 
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 65536 bytes / 131072 bytes
 </code> </code>
  
-Modifiez ensuite la directive **%%DocumentRoot%%** dans le fichier **/etc/httpd/conf/httpd.conf** :+Dans le cas de cet exemple les quatre partitions concernées par la mise en place d'un RAID 5 sont :
  
 <file> <file>
-[...] +/dev/sdb5        618496  1642495  1024000  500M fd Linux raid autodetect 
-#DocumentRoot "/var/www/html" +/dev/sdb8       2672640  3696639  1024000  500M fd Linux raid autodetect 
-DocumentRoot "/www" +/dev/sdb10      4519936  5543935  1024000  500M fd Linux raid autodetect 
-[...]+/dev/sdb11      5545984  6569983  1024000  500M fd Linux raid autodetect
 </file> </file>
  
-Ajoutez les section **<Directory "/www">**:+===11.2 - Créer une Unité RAID===
  
-<file>+La création d'une unité RAID avec la commande **mdadm** se fait grâce aux options passées en arguments à la commande : 
 + 
 +<code> 
 +mdadm --create <unité RAID> [options] <unités physiques> 
 +</code> 
 + 
 +Saisissez maintenant la commande suivante : 
 + 
 +<code> 
 +[root@redhat9 ~]# mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sdb5 /dev/sdb8 /dev/sdb10 
 +mdadm: Defaulting to version 1.2 metadata 
 +mdadm: array /dev/md1 started. 
 +</code> 
 + 
 +Les options dans la ligne de commande sont : 
 + 
 +^ Option Courte ^ Option Longue ^ Description ^ 
 +| -l | - -level | Le niveau RAID - **linear, 0,1,2,4 ou 5** | 
 +| -n | - -raid-devices=<nombre> | Le nombre de périphériques actifs dans le RAID | 
 + 
 +Les options de la commande **mdadm** sont : 
 + 
 +<code> 
 +[root@redhat9 ~]# mdadm --help-options 
 +Any parameter that does not start with '-' is treated as a device name 
 +or, for --examine-bitmap,file name. 
 +The first such name is often the name of an md device.  Subsequent 
 +names are often names of component devices. 
 + 
 +Some common options are: 
 +  --help        -h   : General help message or, after above option, 
 +                       mode specific help message 
 +  --help-options     : This help message 
 +  --version     -V   : Print version information for mdadm 
 +  --verbose     -v   : Be more verbose about what is happening 
 +  --quiet       -q   : Don't print un-necessary messages 
 +  --brief       -b   : Be less verbose, more brief 
 +  --export      -Y   : With --detail, --detail-platform or --examine use 
 +                       key=value format for easy import into environment 
 +  --force       -f   : Override normal checks and be more forceful 
 + 
 +  --assemble    -A   : Assemble an array 
 +  --build       -B   : Build an array without metadata 
 +  --create      -C   : Create a new array 
 +  --detail      -D   : Display details of an array 
 +  --examine     -E   : Examine superblock on an array component 
 +  --examine-bitmap -X: Display the detail of a bitmap file 
 +  --examine-badblocks: Display list of known bad blocks on device 
 +  --monitor     -F   : monitor (follow) some arrays 
 +  --grow        -G   : resize/ reshape and array 
 +  --incremental -I   : add/remove a single device to/from an array as appropriate 
 +  --query       -Q   : Display general information about how a 
 +                       device relates to the md driver 
 +  --auto-detect      : Start arrays auto-detected by the kernel 
 +</code> 
 + 
 +La commande **mdadm** utilise des sous-commandes ou //mode majeurs// : 
 + 
 +<code> 
 +[root@redhat9 ~]# mdadm --help 
 +mdadm is used for building, managing, and monitoring 
 +Linux md devices (aka RAID arrays) 
 +Usage: mdadm --create device options... 
 +            Create a new array from unused devices. 
 +       mdadm --assemble device options... 
 +            Assemble a previously created array. 
 +       mdadm --build device options... 
 +            Create or assemble an array without metadata. 
 +       mdadm --manage device options... 
 +            make changes to an existing array. 
 +       mdadm --misc options... devices 
 +            report on or modify various md related devices. 
 +       mdadm --grow options device 
 +            resize/reshape an active array 
 +       mdadm --incremental device 
 +            add/remove a device to/from an array as appropriate 
 +       mdadm --monitor options... 
 +            Monitor one or more array for significant changes. 
 +       mdadm device options... 
 +            Shorthand for --manage. 
 +Any parameter that does not start with '-' is treated as a device name 
 +or, for --examine-bitmap, a file name. 
 +The first such name is often the name of an md device.  Subsequent 
 +names are often names of component devices. 
 + 
 + For detailed help on the above major modes use --help after the mode 
 + e.g. 
 +         mdadm --assemble --help 
 + For general help on options use 
 +         mdadm --help-options 
 +</code> 
 + 
 +Chaque sous-commande bénéficie d'un aide spécifique, par exemple : 
 + 
 +<code> 
 +[root@redhat9 ~]# mdadm --create --help 
 +Usage:  mdadm --create device --chunk=X --level=Y --raid-devices=Z devices 
 + 
 + This usage will initialise a new md array, associate some 
 + devices with it, and activate the array.   In order to create an 
 + array with some devices missing, use the special word 'missing' in 
 + place of the relevant device name. 
 + 
 + Before devices are added, they are checked to see if they already contain 
 + raid superblocks or filesystems.  They are also checked to see if 
 + the variance in device size exceeds 1%. 
 + If any discrepancy is found, the user will be prompted for confirmation 
 + before the array is created.  The presence of a '--run' can override this 
 + caution. 
 + 
 + If the --size option is given then only that many kilobytes of each 
 + device is used, no matter how big each device is. 
 + If no --size is given, the apparent size of the smallest drive given 
 + is used for raid level 1 and greater, and the full device is used for 
 + other levels. 
 + 
 + Options that are valid with --create (-C) are: 
 +  --bitmap=          -b : Create a bitmap for the array with the given filename 
 +                        : or an internal bitmap if 'internal' is given 
 +  --chunk=           -c : chunk size in kibibytes 
 +  --rounding=           : rounding factor for linear array (==chunk size) 
 +  --level=           -l : raid level: 0,1,4,5,6,10,linear,multipath and synonyms 
 +  --parity=          -p : raid5/6 parity algorithm: {left,right}-{,a}symmetric 
 +  --layout=             : same as --parity, for RAID10: [fno]NN  
 +  --raid-devices=    -n : number of active devices in array 
 +  --spare-devices=   -x : number of spare (eXtra) devices in initial array 
 +  --size=            -z : Size (in K) of each drive in RAID1/4/5/6/10 - optional 
 +  --data-offset=        : Space to leave between start of device and start 
 +                        : of array data. 
 +  --force            -f : Honour devices as listed on command line.  Don'
 +                        : insert a missing drive for RAID5. 
 +  --run              -R : insist of running the array even if not all 
 +                        : devices are present or some look odd. 
 +  --readonly         -o : start the array readonly - not supported yet. 
 +  --name=            -N : Textual name for array - max 32 characters 
 +  --bitmap-chunk=       : bitmap chunksize in Kilobytes. 
 +  --delay=           -d : bitmap update delay in seconds. 
 +  --write-journal=      : Specify journal device for RAID-4/5/6 array 
 +  --consistency-policy= : Specify the policy that determines how the array 
 +                     -k : maintains consistency in case of unexpected shutdown. 
 +  --write-zeroes        : Write zeroes to the disks before creating. This will bypass initial sync. 
 +</code> 
 + 
 +Les //modes majeurs// de la commande **mdadm** peuvent être visualisés grâce à la commande suivante : 
 + 
 +<code> 
 +[root@redhat9 ~]# mdadm --help 
 +mdadm is used for building, managing, and monitoring 
 +Linux md devices (aka RAID arrays) 
 +Usage: mdadm --create device options... 
 +            Create a new array from unused devices. 
 +       mdadm --assemble device options... 
 +            Assemble a previously created array. 
 +       mdadm --build device options... 
 +            Create or assemble an array without metadata. 
 +       mdadm --manage device options... 
 +            make changes to an existing array. 
 +       mdadm --misc options... devices 
 +            report on or modify various md related devices. 
 +       mdadm --grow options device 
 +            resize/reshape an active array 
 +       mdadm --incremental device 
 +            add/remove a device to/from an array as appropriate 
 +       mdadm --monitor options... 
 +            Monitor one or more array for significant changes. 
 +       mdadm device options... 
 +            Shorthand for --manage. 
 +Any parameter that does not start with '-' is treated as a device name 
 +or, for --examine-bitmap, a file name. 
 +The first such name is often the name of an md device.  Subsequent 
 +names are often names of component devices. 
 + 
 + For detailed help on the above major modes use --help after the mode 
 + e.g. 
 +         mdadm --assemble --help 
 + For general help on options use 
 +         mdadm --help-options 
 +</code> 
 + 
 +Constatez maintenant les informations concernant le RAID 5 créé : 
 + 
 +<code> 
 +[root@redhat9 ~]# cat /proc/mdstat 
 +Personalities : [raid6] [raid5] [raid4] [raid1]  
 +md1 : active raid5 sdb10[3] sdb8[1] sdb5[0] 
 +      1019904 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] 
 +       
 +unused devices: <none> 
 +</code> 
 + 
 +Grâce à la commande mdadm, il est possible d'obtenir d'avantage d'informations : 
 + 
 +<code> 
 +[root@redhat9 ~]# mdadm --query /dev/md1 
 +/dev/md1: 996.00MiB raid5 3 devices, 0 spares. Use mdadm --detail for more detail. 
 +</code> 
 + 
 +L'option **- -detail** produit le résultat suivant : 
 + 
 +<code> 
 +[root@redhat9 ~]# mdadm --detail /dev/md1 
 +/dev/md1: 
 +           Version : 1.2 
 +     Creation Time : Wed Oct 23 16:14:41 2024 
 +        Raid Level : raid5 
 +        Array Size : 1019904 (996.00 MiB 1044.38 MB) 
 +     Used Dev Size : 509952 (498.00 MiB 522.19 MB) 
 +      Raid Devices : 3 
 +     Total Devices : 3 
 +       Persistence : Superblock is persistent 
 + 
 +       Update Time : Wed Oct 23 16:14:55 2024 
 +             State : clean  
 +    Active Devices : 3 
 +   Working Devices : 3 
 +    Failed Devices : 0 
 +     Spare Devices : 0 
 + 
 +            Layout : left-symmetric 
 +        Chunk Size : 512K 
 + 
 +Consistency Policy : resync 
 + 
 +              Name : redhat9.ittraining.loc: (local to host redhat9.ittraining.loc) 
 +              UUID : 3645cd8c:03ae466e:b42c4849:03d1eae5 
 +            Events : 18 
 + 
 +    Number   Major   Minor   RaidDevice State 
 +                   21        0      active sync   /dev/sdb5 
 +                   24        1      active sync   /dev/sdb8 
 +                   26        2      active sync   /dev/sdb10 
 +</code> 
 + 
 +Le nom **redhat9.ittraining.loc:1** n'est pas compatible avec la norme POSIX. Pour rectifier ceci, renommez l'array : 
 + 
 +<code> 
 +[root@redhat9 ~]# mdadm --stop /dev/md1 
 +mdadm: stopped /dev/md1 
 + 
 +[root@redhat9 ~]# mdadm --assemble /dev/md1 --name=redhat.ittraining.loc --update=name /dev/sdb5 /dev/sdb8 /dev/sdb10 
 +mdadm: /dev/md1 has been started with 3 drives. 
 + 
 +[root@redhat9 ~]# mdadm --query /dev/md1 
 +/dev/md1: 996.00MiB raid5 3 devices, 0 spares. Use mdadm --detail for more detail. 
 + 
 +[root@redhat9 ~]# mdadm --detail /dev/md1 
 +/dev/md1: 
 +           Version : 1.2 
 +     Creation Time : Wed Oct 23 16:14:41 2024 
 +        Raid Level : raid5 
 +        Array Size : 1019904 (996.00 MiB 1044.38 MB) 
 +     Used Dev Size : 509952 (498.00 MiB 522.19 MB) 
 +      Raid Devices : 3 
 +     Total Devices : 3 
 +       Persistence : Superblock is persistent 
 + 
 +       Update Time : Wed Oct 23 16:14:55 2024 
 +             State : clean  
 +    Active Devices : 3 
 +   Working Devices : 3 
 +    Failed Devices : 0 
 +     Spare Devices : 0 
 + 
 +            Layout : left-symmetric 
 +        Chunk Size : 512K 
 + 
 +Consistency Policy : resync 
 + 
 +              Name : redhat.ittraining.loc 
 +              UUID : 3645cd8c:03ae466e:b42c4849:03d1eae5 
 +            Events : 18 
 + 
 +    Number   Major   Minor   RaidDevice State 
 +                   21        0      active sync   /dev/sdb5 
 +                   24        1      active sync   /dev/sdb8 
 +                   26        2      active sync   /dev/sdb10 
 +</code> 
 + 
 +Notez la ligne **Persistence : Superblock is persistent**. En effet, cette implémentation de RAID inscrit les caractéristiques du volume dans un //super bloc// persistant en début de chaque unité de type bloc dans le volume. 
 + 
 +Cependant, il necéssaire de renseigner le fichier **/etc/mdadm/mdadm.conf** afin que le RAID soit contruit à chaque démarrage : 
 + 
 +<code> 
 +[root@redhat9 ~]# echo 'DEVICE /dev/sdb5 /dev/sdb8 /dev/sdb10' > /etc/mdadm.conf 
 + 
 +[root@redhat9 ~]# mdadm --detail --scan >> /etc/mdadm.conf 
 + 
 +[root@redhat9 ~]# cat /etc/mdadm.conf  
 +DEVICE /dev/sdb5 /dev/sdb8 /dev/sdb10 
 +ARRAY /dev/md1 metadata=1.2 name=redhat.ittraining.loc UUID=3645cd8c:03ae466e:b42c4849:03d1eae5 
 +</code> 
 + 
 +Mettez à jour l'initramfs : 
 + 
 +<code> 
 +[root@redhat9 ~]# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date +%m-%d-%H%M%S).img 
 + 
 +[root@redhat9 ~]# dracut -f -v
 ... ...
-<Directory "/var/www"> +dracut: *** Creating initramfs image file '/boot/initramfs-5.14.0-427.37.1.el9_4.x86_64.img' done ***
-    AllowOverride None +
-    # Allow open access: +
-    Require all granted +
-</Directory>+
  
-<Directory "/www"> +[root@redhat9 ~]# grep initrd /boot/loader/entries/* 
- Options Indexes FollowSymLinks +/boot/loader/entries/5a35a3eb625c45cea1d33535723e791f-0-rescue.conf:initrd /initramfs-0-rescue-5a35a3eb625c45cea1d33535723e791f.img 
- AllowOverride None +/boot/loader/entries/5a35a3eb625c45cea1d33535723e791f-5.14.0-284.11.1.el9_2.x86_64.conf:initrd /initramfs-5.14.0-284.11.1.el9_2.x86_64.img $tuned_initrd 
- Require all granted +/boot/loader/entries/5a35a3eb625c45cea1d33535723e791f-5.14.0-427.37.1.el9_4.x86_64.conf:initrd /initramfs-5.14.0-427.37.1.el9_4.x86_64.img $tuned_initrd 
-</Directory>+</code>
  
-Further relax access to the default document root: +Chaque unité peut être examinée individuellement : 
-<Directory "/var/www/html">+ 
 +<code> 
 +[root@redhat9 ~]mdadm --examine /dev/sdb5 
 +/dev/sdb5: 
 +          Magic : a92b4efc 
 +        Version : 1.2 
 +    Feature Map : 0x0 
 +     Array UUID : 3645cd8c:03ae466e:b42c4849:03d1eae5 
 +           Name : redhat.ittraining.loc 
 +  Creation Time : Wed Oct 23 16:14:41 2024 
 +     Raid Level : raid5 
 +   Raid Devices : 3 
 + 
 + Avail Dev Size : 1019904 sectors (498.00 MiB 522.19 MB) 
 +     Array Size : 1019904 KiB (996.00 MiB 1044.38 MB) 
 +    Data Offset : 4096 sectors 
 +   Super Offset : 8 sectors 
 +   Unused Space : before=4016 sectors, after=0 sectors 
 +          State : clean 
 +    Device UUID : 1ef50b0e:fce4333e:95e4f392:e9470824 
 + 
 +    Update Time : Wed Oct 23 16:14:55 2024 
 +  Bad Block Log : 512 entries available at offset 16 sectors 
 +       Checksum : b5e67068 - correct 
 +         Events : 18 
 + 
 +         Layout : left-symmetric 
 +     Chunk Size : 512K 
 + 
 +   Device Role : Active device 0 
 +   Array State : AAA ('A' == active, '.' == missing, 'R' == replacing) 
 +</code> 
 + 
 +===11.3 - Remplacer une Unité Défaillante=== 
 + 
 +A ce stade il est intéressant de noter comment réagir lors d'une défaillance d'un disque. Dans notre cas nous allons indiquer au système que la partition /dev/sdb5 est devenue défaillante : 
 + 
 +<code> 
 +[root@redhat9 ~]# mdadm --manage --set-faulty /dev/md1 /dev/sdb5 
 +mdadmset /dev/sdb5 faulty in /dev/md1 
 +</code> 
 + 
 +L'utilisation de la ligne de commande suivante nous confirme le statut de /dev/sdb5 : 
 + 
 +<code> 
 +[root@redhat9 ~]# mdadm --detail /dev/md1 
 +/dev/md1: 
 +           Version : 1.2 
 +     Creation Time : Wed Oct 23 16:14:41 2024 
 +        Raid Level : raid5 
 +        Array Size : 1019904 (996.00 MiB 1044.38 MB) 
 +     Used Dev Size : 509952 (498.00 MiB 522.19 MB) 
 +      Raid Devices : 3 
 +     Total Devices : 3 
 +       Persistence : Superblock is persistent 
 + 
 +       Update Time : Wed Oct 23 16:59:59 2024 
 +             State : clean, degraded  
 +    Active Devices : 2 
 +   Working Devices : 2 
 +    Failed Devices : 1 
 +     Spare Devices : 0 
 + 
 +            Layout : left-symmetric 
 +        Chunk Size : 512K 
 + 
 +Consistency Policy : resync 
 + 
 +              Name : redhat.ittraining.loc 
 +              UUID : 3645cd8c:03ae466e:b42c4849:03d1eae5 
 +            Events : 20 
 + 
 +    Number   Major   Minor   RaidDevice State 
 +                    0        0      removed 
 +                   24        1      active sync   /dev/sdb8 
 +                   26        2      active sync   /dev/sdb10 
 + 
 +                   21        -      faulty   /dev/sdb5 
 +</code> 
 + 
 +Il est maintenant nécessaire de supprimer /dev/sdb5 de notre RAID 5 : 
 + 
 +<code> 
 +[root@redhat9 ~]# mdadm --manage --remove /dev/md1 /dev/sdb5 
 +mdadm: hot removed /dev/sdb5 from /dev/md1 
 +</code> 
 + 
 +A l'examen de notre RAID, on constate que /dev/sdb5 a été supprimé : 
 + 
 +<code> 
 +[root@redhat9 ~]# mdadm --detail /dev/md1 
 +/dev/md1: 
 +           Version : 1.2 
 +     Creation Time : Wed Oct 23 16:14:41 2024 
 +        Raid Level : raid5 
 +        Array Size : 1019904 (996.00 MiB 1044.38 MB) 
 +     Used Dev Size : 509952 (498.00 MiB 522.19 MB) 
 +      Raid Devices : 3 
 +     Total Devices : 2 
 +       Persistence : Superblock is persistent 
 + 
 +       Update Time : Wed Oct 23 17:01:05 2024 
 +             State : clean, degraded  
 +    Active Devices : 2 
 +   Working Devices : 2 
 +    Failed Devices : 0 
 +     Spare Devices : 0 
 + 
 +            Layout : left-symmetric 
 +        Chunk Size : 512K 
 + 
 +Consistency Policy : resync 
 + 
 +              Name : redhat.ittraining.loc 
 +              UUID : 3645cd8c:03ae466e:b42c4849:03d1eae5 
 +            Events : 21 
 + 
 +    Number   Major   Minor   RaidDevice State 
 +                    0        0      removed 
 +                   24        1      active sync   /dev/sdb8 
 +                   26        2      active sync   /dev/sdb10 
 +</code> 
 + 
 +Constatez maintenant l'existance de votre RAID : 
 + 
 +<code> 
 +[root@redhat9 ~]# cat /proc/mdstat 
 +Personalities : [raid6] [raid5] [raid4] [raid1]  
 +md1 : active raid5 sdb10[3] sdb8[1] 
 +      1019904 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU] 
 +       
 +unused devices: <none> 
 +</code> 
 + 
 +<WRAP center round important> 
 +**iMPORTANT** - Notez que le RAID a 2 unités au lieu de trois. 
 +</WRAP> 
 + 
 +Pour ajouter un autre disque à notre RAID afin de remplacer /dev/sdb5 il convient d'utiliser l'option **--add** : 
 + 
 +<code> 
 +[root@redhat9 ~]# mdadm --manage --add /dev/md1 /dev/sdb11 
 +mdadm: added /dev/sdb11 
 +</code> 
 + 
 +L'exemen du RAID indique que /dev/sdb11 a été ajouté en tant que //spare// : 
 + 
 +<code> 
 +[root@redhat9 ~]# mdadm --detail /dev/md1 
 +/dev/md1: 
 +           Version : 1.2 
 +     Creation Time : Wed Oct 23 16:14:41 2024 
 +        Raid Level : raid5 
 +        Array Size : 1019904 (996.00 MiB 1044.38 MB) 
 +     Used Dev Size : 509952 (498.00 MiB 522.19 MB) 
 +      Raid Devices : 3 
 +     Total Devices : 3 
 +       Persistence : Superblock is persistent 
 + 
 +       Update Time : Wed Oct 23 17:03:30 2024 
 +             State : clean, degraded, recovering  
 +    Active Devices : 2 
 +   Working Devices : 3 
 +    Failed Devices : 0 
 +     Spare Devices : 1 
 + 
 +            Layout : left-symmetric 
 +        Chunk Size : 512K 
 + 
 +Consistency Policy : resync 
 + 
 +    Rebuild Status : 1% complete 
 + 
 +              Name : redhat.ittraining.loc 
 +              UUID : 3645cd8c:03ae466e:b42c4849:03d1eae5 
 +            Events : 23 
 + 
 +    Number   Major   Minor   RaidDevice State 
 +                   27        0      spare rebuilding   /dev/sdb11 
 +                   24        1      active sync   /dev/sdb8 
 +                   26        2      active sync   /dev/sdb10 
 +</code> 
 + 
 +Vérifiez la prise en compte de la configuration : 
 + 
 +<code> 
 +[root@redhat9 ~]# lsblk 
 +NAME          MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS 
 +sda             8:   0   50G  0 disk   
 +├─sda1          8:1    0    1G  0 part  /boot 
 +└─sda2          8:2    0   49G  0 part   
 +  ├─rhel-root 253:0    0   44G  0 lvm   / 
 +  └─rhel-swap 253:1    0    5G  0 lvm   [SWAP] 
 +sdb             8:16     32G  0 disk   
 +├─sdb1          8:17    100M  0 part   
 +├─sdb2          8:18    100M  0 part   
 +├─sdb3          8:19    100M  0 part   
 +├─sdb4          8:20      1K  0 part   
 +├─sdb5          8:21    500M  0 part   
 +├─sdb6          8:22    200M  0 part   
 +│ └─vg0-lv1   253:   0  104M  0 lvm    
 +├─sdb7          8:23    300M  0 part   
 +│ └─vg0-lv2   253:   0  112M  0 lvm    
 +├─sdb8          8:24    500M  0 part   
 +│ └─md1         9:   0  996M  0 raid5  
 +├─sdb9          8:25    400M  0 part   
 +│ └─vg0-lv2   253:   0  112M  0 lvm    
 +├─sdb10         8:26    500M  0 part   
 +│ └─md1         9:   0  996M  0 raid5  
 +├─sdb11         8:27    500M  0 part   
 +│ └─md1         9:   0  996M  0 raid5  
 +└─sdb12         8:28    200M  0 part   
 +sdc         8:32      6G  0 disk   
 +sdd         8:48      6G  0 disk   
 +sde         8:64     32G  0 disk   
 +sr0            11:0    1 1024M  0 rom  
 + 
 +[root@redhat9 ~]# cat /proc/mdstat 
 +Personalities : [raid6] [raid5] [raid4] [raid1]  
 +md1 : active raid5 sdb11[4] sdb10[3] sdb8[1] 
 +      1019904 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU] 
 +      [======>..............]  recovery = 31.1% (159380/509952) finish=3.8min speed=1517K/sec 
 +       
 +unused devices: <none> 
 + 
 +[root@redhat9 ~]# cat /proc/mdstat 
 +Personalities : [raid6] [raid5] [raid4] [raid1]  
 +md1 : active raid5 sdb11[4] sdb10[3] sdb8[1] 
 +      1019904 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU] 
 +      [==========>..........]  recovery = 50.4% (257956/509952) finish=2.6min speed=1560K/sec 
 +       
 +unused devices: <none> 
 + 
 +[root@redhat9 ~]# cat /proc/mdstat 
 +Personalities : [raid6] [raid5] [raid4] [raid1]  
 +md1 : active raid5 sdb11[4] sdb10[3] sdb8[1] 
 +      1019904 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU] 
 +      [==================>..]  recovery = 92.4% (472552/509952) finish=0.3min speed=1605K/sec 
 +       
 +unused devices: <none> 
 + 
 +[root@redhat9 ~]# cat /proc/mdstat 
 +Personalities : [raid6] [raid5] [raid4] [raid1]  
 +md1 : active raid5 sdb11[4] sdb10[3] sdb8[1] 
 +      1019904 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] 
 +       
 +unused devices: <none> 
 +</code> 
 + 
 +Dernièrement, il nécessaire de renseigner le fichier **/etc/mdadm/mdadm.conf** du changement afin que le RAID soit construit à chaque démarrage : 
 + 
 +<<code> 
 +[root@redhat9 ~]# echo 'DEVICE /dev/sdb8 /dev/sdb10 /dev/sdb11' > /etc/mdadm.conf 
 + 
 +[root@redhat9 ~]# mdadm --detail --scan >> /etc/mdadm.conf 
 + 
 +[root@redhat9 ~]# cat /etc/mdadm.conf  
 +DEVICE /dev/sdb8 /dev/sdb10 /dev/sdb11 
 +ARRAY /dev/md1 metadata=1.2 name=redhat.ittraining.loc UUID=3645cd8c:03ae466e:b42c4849:03d1eae5 
 +</code> 
 + 
 +Mettez à jour l'initramfs : 
 + 
 +<code> 
 +[root@redhat9 ~]# dracut -f -v
 ... ...
-</file>+dracut: *** Creating initramfs image file '/boot/initramfs-5.14.0-427.37.1.el9_4.x86_64.img' done *** 
 +</code> 
 + 
 +=====LAB #12 - Stratis===== 
 + 
 +====12.1 - Présentation==== 
 + 
 +**Stratis** est une solution de gestion de volumes et de stockage pour Linux, développée par Red Hat, qui combine des technologies comme **LVM (Logical Volume Manager)** et **XFS** pour fournir une gestion simplifiée des volumes de stockage. Il est conçu pour offrir une solution robuste et facile à utiliser, tout en offrant une gestion avancée du stockage comme la gestion des snapshots, le thin provisioning, et la gestion des volumes logiques. 
 + 
 +Voici un aperçu de la gestion du stockage avec Stratis : 
 + 
 +===Concepts clés de Stratis=== 
 + 
 +  * **Pool de stockage** : Un pool est une collection de disques physiques (ou d'autres types de périphériques de stockage) qui forment une base pour la création de volumes logiques. Avec Stratis, les disques physiques sont regroupés dans un pool. Vous pouvez ajouter ou retirer des disques au fur et à mesure de vos besoins, 
 +  * **Volumes logiques** : Une fois que vous avez un pool, vous pouvez créer des volumes logiques (ou systèmes de fichiers). Ces volumes logiques peuvent être utilisés comme tout autre système de fichiers dans Linux. Ils peuvent être agrandis ou réduits dynamiquement, 
 +  * **Thin provisioning** : Stratis permet de créer des volumes logiques "thin provisioned", c'est-à-dire que vous pouvez créer un volume avec une taille apparente plus grande que l'espace de stockage réellement disponible. Le volume utilisera l'espace physique réel uniquement lorsque les données sont effectivement écrites, 
 +  * **Snapshots** : Stratis permet de créer des snapshots, qui sont des copies instantanées des volumes à un moment donné. Ces snapshots peuvent être utilisés pour des sauvegardes ou pour restaurer un état précédent du système de fichiers. 
 + 
 +===Gestion simplifiée=== 
 + 
 +L’un des principaux objectifs de Stratis est de simplifier la gestion des volumes. Il combine plusieurs technologies complexes (comme LVM, D-Bus, et XFS) sous une interface de gestion unique, accessible via des commandes simples. 
 + 
 +===Avantages de Stratis=== 
 + 
 +  * **Facilité d'utilisation** : L'abstraction des technologies sous-jacentes et l'interface simple réduisent la complexité pour les administrateurs systèmes, 
 +  * **Thin provisioning** et **snapshots** intégrés, 
 +  * **Gestion dynamique** des disques et des volumes, sans avoir besoin de redémarrer le système, 
 +  * **Snapshots** rapides pour des sauvegardes ou restaurations faciles. 
 + 
 +===Stratis vs ZFS/Btrfs=== 
 + 
 +Stratis est parfois comparé à d'autres systèmes de gestion de stockage comme **ZFS** ou **Btrfs**, qui offrent aussi des fonctionnalités similaires (volumes logiques, snapshots, etc.). Cependant, Stratis se distingue en s'appuyant sur des technologies bien établies de Linux, comme **LVM** et **XFS**, plutôt que de réinventer entièrement un nouveau système de fichiers. 
 + 
 +En résumé, Stratis simplifie la gestion du stockage en regroupant plusieurs fonctionnalités avancées dans un cadre simple et accessible pour les administrateurs Linux, tout en utilisant des technologies éprouvées. 
 + 
 +====12.2 - Travailler avec Stratis==== 
 + 
 +===Installation===
  
-Créez le fichier **/www/index.html** :+Le support de Stratis peut être obtenu en installant les paquets **stratisd** et **stratis-cli** :
  
 <code> <code>
-[root@centos7 ~]# vi /www/index.html +[root@redhat9 ~]# dnf install stratisd stratis-cli -y
-[root@centos7 ~]# cat /www/index.html +
-<html> +
-<title> +
-This is a test +
-</title> +
-<body> +
-www test page +
-</body> +
-</html>+
 </code> </code>
  
-Modifiez ensuite le propriétaire et le groupe du répertoire **/www** et son contenu :+Activez et démarrez le service stratis :
  
 <code> <code>
-[root@centos7 ~]# chown -R apache:apache /www+[root@redhat9 ~]# systemctl enable --now stratisd 
 + 
 +[root@redhat9 ~]# systemctl status stratisd 
 +● stratisd.service - Stratis daemon 
 +     Loadedloaded (/usr/lib/systemd/system/stratisd.service; enabled; preset: enabl> 
 +     Active: active (running) since Thu 2024-10-24 06:51:25 CEST; 10s ago 
 +       Docs: man:stratisd(8) 
 +   Main PID: 2676 (stratisd) 
 +      Tasks: 8 (limit: 48799) 
 +     Memory: 2.0M 
 +        CPU: 22ms 
 +     CGroup: /system.slice/stratisd.service 
 +             └─2676 /usr/libexec/stratisd --log-level debug 
 + 
 +Oct 24 06:51:25 redhat9.ittraining.loc systemd[1]: Starting Stratis daemon... 
 +Oct 24 06:51:25 redhat9.ittraining.loc stratisd[2676]: [2024-10-24T04:51:25Z INFO  st> 
 +Oct 24 06:51:25 redhat9.ittraining.loc stratisd[2676]: [2024-10-24T04:51:25Z INFO  st> 
 +Oct 24 06:51:25 redhat9.ittraining.loc stratisd[2676]: [2024-10-24T04:51:25Z INFO  st> 
 +Oct 24 06:51:25 redhat9.ittraining.loc systemd[1]: Started Stratis daemon. 
 +Oct 24 06:51:25 redhat9.ittraining.loc stratisd[2676]: [2024-10-24T04:51:25Z INFO  st> 
 +[root@redhat9 ~]# 
 </code> </code>
  
-Dernièrement, créez un fichier index.html **vide** dans le répertoire **/var/www/html/** :+===Création d'un Pool=== 
 + 
 +Créez le pool de stockage **pool1** sur **/dev/sdc** :
  
 <code> <code>
-[root@centos7 ~]# touch /var/www/html/index.html+[root@redhat9 ~]# stratis pool create pool1 /dev/sdc
 </code> </code>
  
-Redémarrez maintenant le service httpd :+Consultez la taille du pool :
  
 <code> <code>
-[root@centos7 ~]# systemctl restart httpd.service+[root@redhat9 ~]# stratis pool list 
 +Name           Total / Used / Free    Properties                                   UUID   Alerts 
 +pool1   6 GiB / 526 MiB / 5.49 GiB   ~Ca,~Cr, Op   4cfd12ac-57e7-4c9d-8f48-6c33f482fc46   WS001 
 </code> </code>
  
-Consultez le site localhost en utilisant **lynx** : +Dans la colonne **Properties**, le caractère **~** indique que la propriété indiquée n'est pas présente. Les propriétés sont : 
 + 
 +  * **Ca** - Cache, 
 +  * **Cr** - Chiffrement, 
 +  * **Op** - Surprovisionnement. 
 + 
 +L'alerte Stratis « WS001 » signifie que tous les périphériques du pool ont été entièrement alloués. Cela signifie que la capacité du pool de stockage est entièrement utilisée et qu'il n'y a plus d'espace disponible pour de nouvelles attributions. Cette alerte est critique car elle indique que le pool est effectivement plein et qu'il peut être nécessaire de le gérer ou de l'étendre pour éviter des problèmes opérationnels. 
 + 
 +Ajoutez donc **/dev/sdd** au pool :
  
 <code> <code>
-[root@centos7 ~]# lynx localhost+[root@redhat9 ~]# stratis pool add-data pool1 /dev/sdd 
 +[root@redhat9 ~]# stratis pool list 
 +Name             Total / Used / Free    Properties                                   UUID   Alerts 
 +pool1   12 GiB / 534 MiB / 11.48 GiB   ~Ca,~Cr, Op   4cfd12ac-57e7-4c9d-8f48-6c33f482fc46  
 + 
 +[root@redhat9 ~]# stratis blockdev list pool1 
 +Pool Name   Device Node   Physical Size   Tier   UUID                                 
 +pool1       /dev/sdc              6 GiB   DATA   bdab7f32-db56-4fcf-b78f-af1cda92a72c 
 +pool1       /dev/sdd              6 GiB   DATA   bcd0f548-e4b3-45b1-b334-97d9b16e5030
 </code> </code>
  
-Pour consulter les messages d'alerte de %%SELinux%%, vous disposez de la commande **sealert** du paquet **setroubleshoot-server**. +===Création d'un Système de Fichiers===
  
-Installez donc ce paquet :+Créez le système de fichiers en provisionnement fin **filesystem1** :
  
 <code> <code>
-[root@centos7 ~]# yum install setroubleshoot-server+[root@redhat9 ~]# stratis filesystem create pool1 filesystem1
 </code> </code>
  
-La commande **sealert** possède à la fois une interface graphique **et** un mode en ligne de commande :+Consultez la liste des systèmes de fichiers :
  
 <code> <code>
-[root@centos7 ~]# sealert -a /var/log/audit/audit.log > /root/mylogfile.txt +root@redhat9 ~]# stratis filesystem list 
-type=AVC msg=audit(1524491216.546:616): avc denied  { getattr } for  pid=15389 comm="gssproxy" name="/dev="sda2" ino=128 scontext=system_u:system_r:gssproxy_t:s0 tcontext=system_u:object_r:fs_t:s0 tclass=filesystem +Pool    Filesystem    Total Used Free Limit            Created             Device                           UUID                                 
-  +pool1   filesystem1   1 TiB 545 MiB / 1023.47 GiB None   Oct 24 2024 07:12   /dev/stratis/pool1/filesystem1   e80a1eeb-95d0-413a-8641-2a07ea685b6a 
-**** Invalid AVC allowed in current policy ***+</code>
  
-type=AVC msg=audit(1524491220.766:622): avc:  denied  { getattr } for  pid=15459 comm="gssproxy" name="/" dev="sda2" ino=128 scontext=system_u:system_r:gssproxy_t:s0 tcontext=system_u:object_r:fs_t:s0 tclass=filesystem +===Montage du System de Fichiers=== 
-  + 
-**** Invalid AVC allowed in current policy ***+Créez maintenant le point de montage **/volume** 
 + 
 +<code> 
 +[root@redhat9 ~]# mkdir /volume
 </code> </code>
  
-Consultez le fichier **/root/mylogfile.txt** :+Montez **filesystem1** sur **/volume** :
  
 <code> <code>
-[root@centos7 ~]# more /root/mylogfile.txt +[root@redhat9 ~]# mount /dev/stratis/pool1/filesystem1 /volume 
 +</code>
  
-found 3 alerts in /var/log/audit/audit.log +Vérifiez que **/dev/stratis/pool1/filesystem1** a été monté :
---------------------------------------------------------------------------------+
  
-SELinux is preventing /usr/libexec/dbus-1/dbus-daemon-launch-helper from using the rlimitinh access on a process.+<code> 
 +[root@redhat9 ~]# mount | grep volume 
 +/dev/mapper/stratis-1-4cfd12ac57e74c9d8f486c33f482fc46-thin-fs-e80a1eeb95d0413a86412a07ea685b6a on /volume type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=128k,sunit=256,swidth=2048,noquota) 
 +</code>
  
-*****  Plugin catchall (100. confidence) suggests   **************************+Obtenez l'UUID de **/dev/stratis/pool1/filesystem1** :
  
-you believe that dbus-daemon-launch-helper should be allowed rlimitinh access on processes labeled unconfined_service_t by default. +<code> 
-Then you should report this as a bug. +[root@redhat9 ~]# lsblk --output=UUID /dev/stratis/pool1/filesystem1 
-You can generate a local policy module to allow this access. +UUID 
-Do +e80a1eeb-95d0-413a-8641-2a07ea685b6a 
-allow this access for now by executing: +</code>
-# ausearch -c 'dbus-daemon-lau' --raw | audit2allow -M my-dbusdaemonlau +
-# semodule -i my-dbusdaemonlau.pp+
  
 +Modifiez le fichier **/etc/fstab** :
  
-Additional Information: +<code> 
-Source Context                system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 +[root@redhat9 ~]# vi /etc/fstab 
-Target Context                system_u:system_r:unconfined_service_t:s0-s0:c0.c1 +[root@redhat9 ~]# cat /etc/fstab 
-                              023 + 
-Target Objects                Unknown [ process ] +
-Source                        dbus-daemon-lau +# /etc/fstab 
-Source Path                   /usr/libexec/dbus-1/dbus-daemon-launch-helper +# Created by anaconda on Thu Oct 19 16:05:58 2023 
-Port                          <Unknown> +
-Host                          <Unknown> +# Accessible filesystems, by reference, are maintained under '/dev/disk/'
-Source RPM Packages           dbus-1.10.24-13.el7_6.x86_64 +# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
-Target RPM Packages            +# 
-Policy RPM                    selinux-policy-3.13.1-166.el7_4.9.noarch +# After editing this file, run 'systemctl daemon-reload' to update systemd 
-Selinux Enabled               True +# units generated from this file. 
-Policy Type                   targeted +# 
-Enforcing Mode                Permissive +/dev/mapper/rhel-root                         xfs     defaults        0 0 
-Host Name                     centos7.fenestros.loc +UUID=6f6c5bb9-30be-4734-bc23-03fed8541616 /boot                   xfs     defaults        0 0 
-Platform                      Linux centos7.fenestros.loc +/dev/mapper/rhel-swap   none                    swap    defaults        0 0 
-                              3.10.0-693.21.1.el7.x86_64 #1 SMP Wed Mar 7 +UUID=e80a1eeb-95d0-413a-8641-2a07ea685b6a /volume xfs defaults,x-systemd.requires=stratisd.service 0 0
-                              19:03:37 UTC 2018 x86_64 x86_64 +
-Alert Count                   1 +
-First Seen                    2020-01-23 16:04:33 CET +
-Last Seen                     2020-01-23 16:04:33 CET +
---More--(4%)+
 </code> </code>
  
-Cherchez dans le fichier la chaine **Plugin catchall** de la section concernant apache :+Démontez maintenant **/volume** :
  
 <code> <code>
-*****  Plugin catchall (17.1 confidence) suggests   **************************+[root@redhat9 ~]# umount /volume 
 +[root@redhat9 ~]# mount | grep volume 
 +</code>
  
-you believe that httpd should be allowed getattr access on the index.html file by default. +Montez **/volume** à partir de **/etc/fstab** :
-Then you should report this as a bug. +
-You can generate a local policy module to allow this access. +
-Do +
-allow this access for now by executing: +
-# ausearch -c 'httpd' --raw | audit2allow -M my-httpd +
-# semodule -i my-httpd.pp+
  
 +<code>
 +[root@redhat9 ~]# mount -a
 +mount: (hint) your fstab has been modified, but systemd still uses
 +       the old version; use 'systemctl daemon-reload' to reload.
  
-Additional Information: +[root@redhat9 ~]# mount | grep volume 
-Source Context                system_u:system_r:httpd_t:s0 +/dev/mapper/stratis-1-4cfd12ac57e74c9d8f486c33f482fc46-thin-fs-e80a1eeb95d0413a86412a07ea685b6a on /volume type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=128k,sunit=256,swidth=2048,noquota,x-systemd.requires=stratisd.service)
-Target Context                unconfined_u:object_r:default_t:s0 +
-Target Objects                /www/index.html file +
-Source                        httpd +
-Source Path                   /usr/sbin/httpd +
-Port                          <Unknown> +
-Host                          <Unknown> +
-Source RPM Packages           httpd-2.4.6-90.el7.centos.x86_64 +
-Target RPM Packages +
-Policy RPM                    selinux-policy-3.13.1-166.el7_4.9.noarch +
-Selinux Enabled               True +
-Policy Type                   targeted +
-Enforcing Mode                Permissive +
-Host Name                     centos7.fenestros.loc +
-Platform                      Linux centos7.fenestros.loc +
-                              3.10.0-693.21.1.el7.x86_64 #1 SMP Wed Mar 7 +
-                              19:03:37 UTC 2018 x86_64 x86_64 +
-Alert Count                   1 +
-First Seen                    2020-01-23 16:04:30 CET +
-Last Seen                     2020-01-23 16:04:30 CET +
-Local ID                      096941d6-1c72-49bd-862b-9bfc3aad32e5+
  
-Raw Audit Messages +[root@redhat9 ~]# systemctl daemon-reload 
-type=AVC msg=audit(1579791870.276:244): avc:  denied  { getattr } for  pid=1728 comm="httpd" path="/www/index.html" dev="sda2" ino=2240172 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:default_t:s0 tclass=file+</code>
  
 +===Croissance Dynamique du Système de Fichiers===
  
-type=SYSCALL msg=audit(1579791870.276:244): arch=x86_64 syscall=stat success=yes exit=0 a0=56255c9727b8 a1=7ffd44466030 a2=7ffd44466030 a3=7f3a4d9ab712 items=0 ppid=1722 pid=1728 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm=httpd exe=/usr/sbin/httpd subj=system_u:system_r:httpd_t:s0 key=(null)+Consultez l'utilisation de l'espace disque de **filesystem1** :
  
-Hashhttpd,httpd_t,default_t,file,getattr+<code> 
 +[root@redhat9 ~]# stratis filesystem list 
 +Pool    Filesystem    Total / Used / Free / Limit            Created             Device                           UUID                                 
 +pool1   filesystem1   1 TiB / 545 MiB / 1023.47 GiB / None   Oct 24 2024 07:12   /dev/stratis/pool1/filesystem1   e80a1eeb-95d0-413a-8641-2a07ea685b6a
 </code> </code>
  
-Ce message a été généré parce que le repertoire /www ainsi que le fichier index.html ne possèdent pas le **type** nécessaire pour que le service apache puisse les utiliser :+Créez un fichier de 2GiB dans le systéme de fichiers **filesystem1** :
  
 <code> <code>
-[root@centos6 ~]# ls -Z /www/index.html +[root@redhat9 ~]# dd if=/dev/urandom of=/volume/file bs=1M count=2048 
--rw-r--r--. root root unconfined_u:object_r:default_t:s0 /www/index.html+2048+0 records in 
 +2048+0 records out 
 +2147483648 bytes (2.1 GB, 2.0 GiB) copied, 26.3089 s, 81.6 MB/s
 </code> </code>
 +
 +Consultez l'utilisation de l'espace disque de **filesystem1** :
  
 <code> <code>
-[root@centos7 ~]# ls -Z /var/www/html/index.html +[root@redhat9 ~]# stratis filesystem list 
--rw-r--r--root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/index.html+Pool    Filesystem    Total Used Free Limit             Created             Device                           UUID                                 
 +pool1   filesystem1   1 TiB 6.53 GiB / 1017.47 GiB / None   Oct 24 2024 07:12   /dev/stratis/pool1/filesystem1   e80a1eeb-95d0-413a-8641-2a07ea685b6a
 </code> </code>
  
-L'exemple ci-dessus nous montre clairement que le type pour **/www/index.html** est **default_t** or apache besoin du type **httpd_sys_content_t** pour pouvoir accéder au fichier.+<WRAP center round important 60%> 
 +**Important** : Notez que l'utilisation du disque augmentée. 
 +</WRAP>
  
-Modifiez donc la SC de /www et /www/index.html en utilisant la commande **chcon** :+===Création d'un Snapshot=== 
 + 
 +Créez le snapshot **filesystem1-snap** de **filesystem1** :
  
 <code> <code>
-[root@centos7 ~]# chcon -Rv --type=httpd_sys_content_t /www +[root@redhat9 ~]# stratis filesystem snapshot pool1 filesystem1 filesystem1-snap 
-changing security context of ‘/www/index.html’ +</code>
-changing security context of ‘/www’+
  
-[root@centos7 ~]# ls -Z /www/index.html +Vérifiez la présence du snapshot : 
--rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /www/index.html+ 
 +<code> 
 +[root@redhat9 ~]# stratis filesystem list 
 +Pool    Filesystem         Total Used Free / Limit             Created             Device                                UUID                                 
 +pool1   filesystem1        1 TiB / 6.53 GiB / 1017.47 GiB / None   Oct 24 2024 07:12   /dev/stratis/pool1/filesystem1        e80a1eeb-95d0-413a-8641-2a07ea685b6a 
 +pool1   filesystem1-snap   1 TiB / 6.53 GiB / 1017.47 GiB / None   Oct 24 2024 07:44   /dev/stratis/pool1/filesystem1-snap   58604780-5686-4f92-b4dc-48ca6a35a64f
 </code> </code>
  
-Afin de maintenir ces SC lors d'une **restauration des SC par défaut**, il convient d'utiliser la commande **semanage** afin d'appliquer la modification d'une manière définitive :+Supprimez le fichier **/volume/file** :
  
 <code> <code>
-[root@centos7 ~]# semanage fcontext -a -t httpd_sys_content_t "/www(/.*)?"+[root@redhat9 ~]# rm -/volume/file
 </code> </code>
  
-====La commande restorecon====+Vérifiez la suppression de **/volume/file**:
  
-<file+<code
-usage:  restorecon [-iFnrRv[-e excludedir ] [-o filename ] [-f filename | pathname... ] +[root@redhat9 ~]# ls -l /volume 
-</file>+total 0 
 +</code>
  
-Pour illustrer l'utilisation de cette commande, créez les fichiers copy.html et move.html dans le répertoire /tmp :+Créez le point de montage **/filesystem1-snap** :
  
 <code> <code>
-[root@centos7 ~]# cd /tmp ; touch copy.html move.html +[root@redhat9 ~]# mkdir /filesystem1-snap
-[root@centos7 tmp]# ls -Z | grep html +
--rw-r--r--. root root unconfined_u:object_r:user_tmp_t:s0 copy.html +
--rw-r--r--. root root unconfined_u:object_r:user_tmp_t:s0 move.html+
 </code> </code>
  
-**Copiez** le fichier copy.html vers /var/www/html et **déplacez** le fichier move.html vers la même cible :+Montez **/dev/stratis/pool1/filesystem1-snap** sur **/filesystem1-snap** :
  
 <code> <code>
-[root@centos7 tmp]# cp copy.html /var/www/html/ +[root@redhat9 ~]# mount /dev/stratis/pool1/filesystem1-snap /filesystem1-snap
-[root@centos7 tmp]# mv move.html /var/www/html/ +
-[root@centos7 tmp]# ls -/var/www/html +
--rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 copy.html +
--rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html +
--rw-r--r--. root root unconfined_u:object_r:user_tmp_t:s0 move.html+
 </code> </code>
  
-<WRAP center round important 50%+Vérifiez la présence du fichier **/filesystem1-snap/file** : 
-**Important** : Notez ici que copy.html a pris le type du répertoire de destination tandis que move.html retient le type obtenu lors de la création.+ 
 +<code
 +[root@redhat9 ~]# ls -l /filesystem1-snap 
 +total 2097152 
 +-rw-r--r--. 1 root root 2147483648 Oct 24 07:37 file 
 +</code> 
 + 
 +===Suppression des Systèmes de Fichiers=== 
 + 
 +Démontez les deux systèmes de fichiers : 
 + 
 +<code> 
 +[root@redhat9 ~]# umount /volume 
 + 
 +[root@redhat9 ~]# umount /filesystem1-snap 
 +</code> 
 + 
 +Supprimez les deux systèmes de fichiers : 
 + 
 +<code> 
 +[root@redhat9 ~]# stratis filesystem destroy pool1 filesystem1-snap 
 + 
 +[root@redhat9 ~]# stratis filesystem destroy pool1 filesystem1 
 + 
 +[root@redhat9 ~]# stratis filesystem list 
 +Pool   Filesystem   Total / Used / Free / Limit   Created   Device   UUID 
 +</code> 
 + 
 +Editez le fichier **/etc/fstab** : 
 + 
 +<code> 
 +[root@redhat9 ~]# vi /etc/fstab 
 +[root@redhat9 ~]# cat /etc/fstab 
 + 
 +
 +# /etc/fstab 
 +# Created by anaconda on Thu Oct 19 16:05:58 2023 
 +
 +# Accessible filesystems, by reference, are maintained under '/dev/disk/'. 
 +# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info. 
 +
 +# After editing this file, run 'systemctl daemon-reload' to update systemd 
 +# units generated from this file. 
 +
 +/dev/mapper/rhel-root   /                       xfs     defaults        0 0 
 +UUID=6f6c5bb9-30be-4734-bc23-03fed8541616 /boot                   xfs     defaults        0 0 
 +/dev/mapper/rhel-swap   none                    swap    defaults        0 0 
 +</code> 
 + 
 +Supprimez les deux points de montage : 
 + 
 +<code> 
 +[root@redhat9 ~]# rm -rf /volume /filesystem1-snap 
 +</code> 
 + 
 +Désactiver et arrêtez le service **stratisd** : 
 + 
 +<code> 
 +[root@redhat9 ~]# systemctl disable --now stratisd 
 +Removed "/etc/systemd/system/multi-user.target.wants/stratisd.service"
 + 
 +[root@redhat9 ~]# systemctl status stratisd 
 +○ stratisd.service - Stratis daemon 
 +     Loaded: loaded (/usr/lib/systemd/system/stratisd.service; disabled; preset: enabled) 
 +     Active: inactive (dead) 
 +       Docs: man:stratisd(8) 
 + 
 +Oct 24 07:58:07 redhat9.ittraining.loc stratisd[2676]: [2024-10-24T05:58:07Z INFO  stratisd::dbus_api::pool::pool_3_0::methods] Filesystems with UUIDs 58604780-5686-4f92-b4dc-48ca6a35a64f were successfully del> 
 +Oct 24 07:58:14 redhat9.ittraining.loc stratisd[2676]: [2024-10-24T05:58:14Z INFO  stratisd::dbus_api::pool::pool_3_0::methods] Filesystems with UUIDs e80a1eeb-95d0-413a-8641-2a07ea685b6a were successfully del> 
 +Oct 24 08:02:37 redhat9.ittraining.loc systemd[1]: Stopping Stratis daemon... 
 +Oct 24 08:02:37 redhat9.ittraining.loc stratisd[2676]: [2024-10-24T06:02:37Z INFO  stratisd::stratis::run] Caught SIGINT; exiting... 
 +Oct 24 08:02:37 redhat9.ittraining.loc stratisd[2676]: [2024-10-24T06:02:37Z INFO  stratisd::dbus_api::util] D-Bus tree handler was notified to exit 
 +Oct 24 08:02:37 redhat9.ittraining.loc stratisd[2676]: [2024-10-24T06:02:37Z INFO  stratisd::stratis::udev_monitor] udev thread was notified to exit 
 +Oct 24 08:02:37 redhat9.ittraining.loc stratisd[2676]: [2024-10-24T06:02:37Z INFO  stratisd::dbus_api::connection] D-Bus connection handler thread notified to exit 
 +Oct 24 08:02:37 redhat9.ittraining.loc systemd[1]: stratisd.service: Deactivated successfully. 
 +Oct 24 08:02:37 redhat9.ittraining.loc systemd[1]: Stopped Stratis daemon. 
 +Oct 24 08:02:37 redhat9.ittraining.loc systemd[1]: stratisd.service: Consumed 3.273s CPU time. 
 +</code> 
 + 
 +=====Systèmes de Fichiers Journalisés===== 
 + 
 +====Présentation==== 
 + 
 +Un journal est la partie d'un système de fichiers journalisé qui trace les opérations d'écriture tant qu'elles ne sont pas terminées et cela en vue de garantir l'intégrité des données en cas d'arrêt brutal. 
 + 
 +L'intérêt est de pouvoir plus facilement et plus rapidement récupérer les données en cas d'arrêt brutal du système d'exploitation (coupure d'alimentation, plantage du système, etc.), alors que les partitions n'ont pas été correctement synchronisées et démontées. 
 + 
 +Sans un tel fichier journal, un outil de récupération de données après un arrêt brutal doit parcourir l'intégralité du système de fichier pour vérifier sa cohérence. Lorsque la taille du système de fichiers est importante, cela peut durer très longtemps pour un résultat moins efficace car entraînant des pertes de données. 
 + 
 +Linux peut utiliser un des systèmes de fichiers journalisés suivants : 
 + 
 +^ Système de fichier ^ Taille maximum - fichier ^ Taille maximum - système de fichier ^ 
 +| **[[http://en.wikipedia.org/wiki/Ext3|Ext3]]** | 2 [[http://fr.wikipedia.org/wiki/Octet|To]] | 32 [[http://fr.wikipedia.org/wiki/Octet|To]] | 
 +| **[[http://fr.wikipedia.org/wiki/Ext4|Ext4]]** | 16 [[http://fr.wikipedia.org/wiki/Octet|To]] | 1 [[http://fr.wikipedia.org/wiki/Exbibyte|EiB]] | 
 +| **[[http://en.wikipedia.org/wiki/XFS|XFS]]** | 8 [[http://fr.wikipedia.org/wiki/Exbibyte|EiB]] | 16 [[http://fr.wikipedia.org/wiki/Exbibyte|EiB]] | 
 +| **[[http://en.wikipedia.org/wiki/ReiserFS|ReiserFS v3]]** | 8 [[http://fr.wikipedia.org/wiki/Octet|To]] | 16 [[http://fr.wikipedia.org/wiki/Octet|To]] | 
 +| **[[http://en.wikipedia.org/wiki/JFS_(file_system)|JFS]]** | 4 [[http://fr.wikipedia.org/wiki/Octet|Po]] | 32 [[http://fr.wikipedia.org/wiki/Octet|Po]] | 
 +| **[[https://fr.wikipedia.org/wiki/Btrfs|Btrfs]]** | 16 [[http://fr.wikipedia.org/wiki/Exbibyte|EiB]] | 16 [[http://fr.wikipedia.org/wiki/Exbibyte|EiB]] | 
 + 
 +<WRAP center round todo 60%> 
 +**A faire** : Pour comparer ces six systèmes de fichier, veuillez consulter **[[http://en.wikipedia.org/wiki/Comparison_of_file_systems|cette page]]**
 </WRAP> </WRAP>
  
-Restaurez maintenant la SC par défaut de move.html compte tenu de son emplacement en utilisant la commande **restorecon** :+====LAB #13 - Ext3==== 
 + 
 +Ext3 est une évolution de Ext2 et a pour principale différence d'utiliser un fichier journalIl peut : 
 + 
 +  * être utilisé à partir d'une partition Ext2, sans avoir à sauvegarder et à restaurer des données, 
 +  * utiliser tous les utilitaires de maintenance pour les systèmes de fichiers ext2, comme fsck, 
 +  utiliser le logiciel dump, ce qui n'est pas le cas avec %%ReiserFS%%. 
 + 
 +Pour plus d'information concernant Ext3, consultez **[[http://en.wikipedia.org/wiki/Ext3|cette page]]*
 + 
 +===13.1 - Gestion d'Ext3=== 
 + 
 +Notez maintenant le numéro de la dernière partition que vous avez précédemment créée :
  
 <code> <code>
-[root@centos7 tmp]# restorecon -/var/www/html/move.html +[root@redhat9 ~]# fdisk -
-restorecon reset /var/www/html/move.html context unconfined_u:object_r:user_tmp_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0+Disk /dev/sda: 50 GiB, 53687091200 bytes, 104857600 sectors 
 +Disk model: QEMU HARDDISK    
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes 512 bytes 
 +I/O size (minimum/optimal): 512 bytes 512 bytes 
 +Disklabel typedos 
 +Disk identifier0xd00dfc8a
  
-[root@centos7 tmp]# ls -Z /var/www/html +Device     Boot   Start       End   Sectors Size Id Type 
--rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 copy.html +/dev/sda1  *       2048   2099199   2097152   1G 83 Linux 
--rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html +/dev/sda2       2099200 104857599 102758400  49G 8e Linux LVM 
--rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 move.html+ 
 + 
 +Disk /dev/sdb32 GiB, 34359738368 bytes, 67108864 sectors 
 +Disk modelQEMU HARDDISK    
 +Unitssectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 +Disklabel type: dos 
 +Disk identifier: 0x23a56c2e 
 + 
 +Device     Boot   Start      End  Sectors  Size Id Type 
 +/dev/sdb1          2048   206847   204800  100M 83 Linux 
 +/dev/sdb2        206848   411647   204800  100M 83 Linux 
 +/dev/sdb3        411648   616447   204800  100M 83 Linux 
 +/dev/sdb4        616448 67108863 66492416 31.7G  5 Extended 
 +/dev/sdb5        618496  1642495  1024000  500M fd Linux raid autodetect 
 +/dev/sdb6       1644544  2054143   409600  200M 8e Linux LVM 
 +/dev/sdb7       2056192  2670591   614400  300M 8e Linux LVM 
 +/dev/sdb8       2672640  3696639  1024000  500M fd Linux raid autodetect 
 +/dev/sdb9       3698688  4517887   819200  400M 8e Linux LVM 
 +/dev/sdb10      4519936  5543935  1024000  500M fd Linux raid autodetect 
 +/dev/sdb11      5545984  6569983  1024000  500M fd Linux raid autodetect 
 +/dev/sdb12      6572032  6981631   409600  200M 83 Linux 
 + 
 + 
 +Disk /dev/sdc: 6 GiB, 6442450944 bytes, 12582912 sectors 
 +Disk model: QEMU HARDDISK    
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 + 
 + 
 +Disk /dev/sdd: 6 GiB, 6442450944 bytes, 12582912 sectors 
 +Disk model: QEMU HARDDISK    
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 + 
 + 
 +Disk /dev/sde: 32 GiB, 34359738368 bytes, 67108864 sectors 
 +Disk model: QEMU HARDDISK    
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 + 
 + 
 +Disk /dev/mapper/rhel-root: 44 GiB, 47240445952 bytes, 92266496 sectors 
 +Unitssectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical)512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 + 
 + 
 +Disk /dev/mapper/rhel-swap: 5 GiB, 5368709120 bytes, 10485760 sectors 
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 + 
 + 
 +Disk /dev/md1: 996 MiB, 1044381696 bytes, 2039808 sectors 
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 524288 bytes / 1048576 bytes 
 + 
 + 
 +Disk /dev/mapper/vg0-lv1: 104 MiB, 109051904 bytes, 212992 sectors 
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 + 
 + 
 +Disk /dev/mapper/vg0-lv2112 MiB, 117440512 bytes, 229376 sectors 
 +Unitssectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical)512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 65536 bytes / 131072 bytes
 </code> </code>
  
-====Le fichier /.autorelabel====+Créez un filesystem Ext3 sur /dev/sdb12 en utilisant la commande **mke2fs -j** : 
 + 
 +<code> 
 +[root@redhat9 ~]# mke2fs -j /dev/sdb12 
 +mke2fs 1.46.5 (30-Dec-2021) 
 +Discarding device blocks: done                             
 +Creating filesystem with 204800 1k blocks and 51200 inodes 
 +Filesystem UUID: f489fe51-2f8b-444a-af89-9bb5b6301214 
 +Superblock backups stored on blocks:  
 +        8193, 24577, 40961, 57345, 73729 
 + 
 +Allocating group tables: done                             
 +Writing inode tables: done                             
 +Creating journal (4096 blocks): done 
 +Writing superblocks and filesystem accounting information: done  
 +</code> 
 + 
 +<WRAP center round important 60%> 
 +**Important** : Lors de la mise en place d'un filesystem ext2/ext3/ext4, le système réserve 5% de l'espace disque pour root. Sur des disques de grande taille il est parfois préférable de récupérer une partie de cet espace en utilisant la commande **tune2fs -m n /dev/sdXY** ou **n** est le nouveau pourcentage à réserver. 
 +</WRAP> 
 + 
 +===13.2 - Convertir un Système de Fichiers Ext3 en Ext2===
  
-En cas de besoin il est intéressant de pouvoir restaurer les SC par défaut sur l'ensemble des objets du système. Cette procédure est très simple à mettre en oeuvre. Il convient de créer le fichier **.autorelabel** à la racine et de redémarrer le système :+Pour vérifier si un système de fichiers Ext2 est journalisé, utilisez la commande **dumpe2fs** :
  
 <code> <code>
-[root@centos7 tmp]# touch /.autorelabel +[root@redhat9 ~]# dumpe2fs -h /dev/sdb12 
-[root@centos7 tmp]shutdown -r now+dumpe2fs 1.46.5 (30-Dec-2021) 
 +Filesystem volume name:   <none> 
 +Last mounted on:          <not available> 
 +Filesystem UUID:          f489fe51-2f8b-444a-af89-9bb5b6301214 
 +Filesystem magic number:  0xEF53 
 +Filesystem revision #:    1 (dynamic) 
 +Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super large_file 
 +Filesystem flags:         signed_directory_hash  
 +Default mount options:    user_xattr acl 
 +Filesystem state:         clean 
 +Errors behavior:          Continue 
 +Filesystem OS type:       Linux 
 +Inode count:              51200 
 +Block count:              204800 
 +Reserved block count:     10240 
 +Overhead clusters:        18495 
 +Free blocks:              186274 
 +Free inodes:              51189 
 +First block:              1 
 +Block size:               1024 
 +Fragment size:            1024 
 +Reserved GDT blocks:      256 
 +Blocks per group:         8192 
 +Fragments per group:      8192 
 +Inodes per group:         2048 
 +Inode blocks per group:   512 
 +Filesystem created:       Thu Oct 24 08:25:48 2024 
 +Last mount time:          n/a 
 +Last write time:          Thu Oct 24 08:26:00 2024 
 +Mount count:              0 
 +Maximum mount count:      -
 +Last checked:             Thu Oct 24 08:25:48 2024 
 +Check interval:           0 (<none>
 +Reserved blocks uid:      0 (user root) 
 +Reserved blocks gid:      0 (group root) 
 +First inode:              11 
 +Inode size:               256 
 +Required extra isize:     32 
 +Desired extra isize:      32 
 +Journal inode:            8 
 +Default directory hash:   half_md4 
 +Directory Hash Seed:      e7f0145e-3007-4ee4-b433-4ac7d3480c57 
 +Journal backup:           inode blocks 
 +Journal features:         (none) 
 +Total journal size:       4096k 
 +Total journal blocks:     4096 
 +Max transaction length:   4096 
 +Fast commit length:       0 
 +Journal sequence:         0x00000001 
 +Journal start:            0
 </code> </code>
  
-====La commande semanage====+<WRAP center round important 60%> 
 +**Important** : Le drapeau **Filesystem features:      has_journal ...** démontre que Ext3 est utilisé sur cette partition. 
 +</WRAP>
  
-La commande **semanage** peut prendre plusieurs options :+Pour supprimer le journal du système de fichier Ext3 sur cette partition, il convient d'utiliser la commande **tune2fs**
  
 <code> <code>
-[root@centos7 tmp]# semanage --help +[root@redhat9 ~]# tune2fs -O ^has_journal /dev/sdb12 
-usage: semanage [-h] +tune2fs 1.46.5 (30-Dec-2021) 
-                 +</code>
-                {import,export,login,user,port,interface,module,node,fcontext,boolean,permissive,dontaudit} +
-                ...+
  
-semanage is used to configure certain elements of SELinux policy with-out +Constatez le résultat de cette commande :
-requiring modification to or recompilation from policy source.+
  
-positional arguments+<code> 
-  {import,export,login,user,port,interface,module,node,fcontext,boolean,permissive,dontaudit} +[root@redhat9 ~]# dumpe2fs -h /dev/sdb12 
-    import              Import local customizations +dumpe2fs 1.46.5 (30-Dec-2021) 
-    export              Output local customizations +Filesystem volume name  <none> 
-    login               Manage login mappings between linux users and SELinux +Last mounted on:          <not available> 
-                        confined users +Filesystem UUID:          f489fe51-2f8b-444a-af89-9bb5b6301214 
-    user                Manage SELinux confined users (Roles and levels for an +Filesystem magic number:  0xEF53 
-                        SELinux user) +Filesystem revision #:    1 (dynamic) 
-    port                Manage network port type definitions +Filesystem features:      ext_attr resize_inode dir_index filetype sparse_super large_file 
-    interface           Manage network interface type definitions +Filesystem flags:         signed_directory_hash  
-    module              Manage SELinux policy modules +Default mount options:    user_xattr acl 
-    node                Manage network node type definitions +Filesystem state:         clean 
-    fcontext            Manage file context mapping definitions +Errors behavior:          Continue 
-    boolean             Manage booleans to selectively enable functionality +Filesystem OS type:       Linux 
-    permissive          Manage process type enforcement mode +Inode count:              51200 
-    dontaudit           Disable/Enable dontaudit rules in policy+Block count:              204800 
 +Reserved block count:     10240 
 +Overhead clusters:        14399 
 +Free blocks:              190387 
 +Free inodes:              51189 
 +First block:              1 
 +Block size:               1024 
 +Fragment size:            1024 
 +Reserved GDT blocks:      256 
 +Blocks per group:         8192 
 +Fragments per group:      8192 
 +Inodes per group:         2048 
 +Inode blocks per group:   512 
 +Filesystem created:       Thu Oct 24 08:25:48 2024 
 +Last mount time:          n/a 
 +Last write time:          Thu Oct 24 08:27:14 2024 
 +Mount count:              0 
 +Maximum mount count:      -1 
 +Last checked:             Thu Oct 24 08:25:48 2024 
 +Check interval:           (<none>) 
 +Reserved blocks uid:      0 (user root
 +Reserved blocks gid:      0 (group root) 
 +First inode:              11 
 +Inode size:               256 
 +Required extra isize:     32 
 +Desired extra isize:      32 
 +Default directory hash:   half_md4 
 +Directory Hash Seed:      e7f0145e-3007-4ee4-b433-4ac7d3480c57 
 +Journal backup:           inode blocks 
 +</code>
  
-optional arguments+<WRAP center round important 60%> 
-  -h, --help            show this help message and exit+**Important** Notez que le drapeau **Filesystem features:      has_journal ...** a été supprimé. 
 +</WRAP> 
 + 
 +Supprimez maintenant l'inode du journal : 
 + 
 +<code> 
 +[root@redhat9 ~]# fsck /dev/sdb12 
 +fsck from util-linux 2.37.4 
 +e2fsck 1.46.5 (30-Dec-2021) 
 +/dev/sdb12: clean, 11/51200 files, 14413/204800 blocks
 </code> </code>
  
-Pour illustrer l'utilisation de cette commande, considérez le besoin de mettre le service apache à l'écoute du port **8090** au lieu du port standard.+Créez maintenant un point de montage pour /dev/sdb12 :
  
-%%SELinux%% gère aussi l'accès aux ports par les différents serveursLa liste complète des ports autorisés par serveur puet être visualiser à l'aide de la commande **semanage** :+<code> 
 +[root@redhat9 ~]# mkdir /mnt/sdb12 
 +</code> 
 + 
 +Essayez de monter /dev/sdb12 en tant que système de fichiers Ext3Vous obtiendrez un résultat similaire à celui-ci :
  
 <code> <code>
-[root@centos7 tmp]# semanage port -l +[root@redhat9 ~]# mount -t ext3 /dev/sdb12 /mnt/sdb12 
-SELinux Port Type              Proto    Port Number+mount: /mnt/sdb12: wrong fs type, bad option, bad superblock on /dev/sdb12, missing codepage or helper program, or other error. 
 +</code>
  
-afs3_callback_port_t           tcp      7001 +<WRAP center round important 60%> 
-afs3_callback_port_t           udp      7001 +**Important** : Notez l'erreur due au mauvais système de fichiers qui suit l'option **-t**. 
-afs_bos_port_t                 udp      7007 +</WRAP> 
-afs_fs_port_t                  tcp      2040 + 
-afs_fs_port_t                  udp      7000, 7005 +Montez maintenant le système de fichiers en tant que Ext2 : 
-afs_ka_port_t                  udp      7004 + 
-afs_pt_port_t                  tcp      7002 +<code> 
-afs_pt_port_t                  udp      7002 +[root@redhat9 ~]# mount -t ext2 /dev/sdb12 /mnt/sdb12
-afs_vl_port_t                  udp      7003 +
-agentx_port_t                  tcp      705 +
-agentx_port_t                  udp      705 +
-amanda_port_t                  tcp      10080-10083 +
-amanda_port_t                  udp      10080-10082 +
-amavisd_recv_port_t            tcp      10024 +
-amavisd_send_port_t            tcp      10025 +
-amqp_port_t                    tcp      15672, 5671-5672 +
-amqp_port_t                    udp      5671-5672 +
-aol_port_t                     tcp      5190-5193 +
-aol_port_t                     udp      5190-5193 +
-apc_port_t                     tcp      3052 +
-apc_port_t                     udp      3052 +
-apcupsd_port_t                 tcp      3551 +
-apcupsd_port_t                 udp      3551 +
-apertus_ldp_port_t             tcp      539 +
-apertus_ldp_port_t             udp      539 +
-asterisk_port_t                tcp      1720 +
-asterisk_port_t                udp      2427, 2727, 4569 +
-audit_port_t                   tcp      60 +
-auth_port_t                    tcp      113 +
-bacula_port_t                  tcp      9103 +
-bacula_port_t                  udp      9103 +
-bctp_port_t                    tcp      8999 +
-bctp_port_t                    udp      8999 +
-bgp_port_t                     tcp      179, 2605 +
-bgp_port_t                     udp      179, 2605 +
-boinc_client_port_t            tcp      1043 +
-boinc_client_port_t            udp      1034 +
-boinc_port_t                   tcp      31416 +
-brlp_port_t                    tcp      4101 +
-certmaster_port_t              tcp      51235 +
-chronyd_port_t                 udp      323 +
-clamd_port_t                   tcp      3310 +
-clockspeed_port_t              udp      4041 +
-cluster_port_t                 tcp      5149, 40040, 50006-50008 +
-cluster_port_t                 udp      5149, 50006-50008 +
-cma_port_t                     tcp      1050 +
-cma_port_t                     udp      1050 +
-cobbler_port_t                 tcp      25151 +
-collectd_port_t                udp      25826 +
-commplex_link_port_t           tcp      4331, 5001 +
-commplex_link_port_t           udp      5001 +
-commplex_main_port_t           tcp      5000 +
-commplex_main_port_t           udp      5000 +
-comsat_port_t                  udp      512 +
-condor_port_t                  tcp      9618 +
-condor_port_t                  udp      9618 +
-conman_port_t                  tcp      7890 +
-conman_port_t                  udp      7890 +
-connlcli_port_t                tcp      1358 +
-connlcli_port_t                udp      1358 +
-couchdb_port_t                 tcp      5984, 6984 +
-couchdb_port_t                 udp      5984, 6984 +
-ctdb_port_t                    tcp      4379 +
-ctdb_port_t                    udp      4379 +
-cvs_port_t                     tcp      2401 +
-cvs_port_t                     udp      2401 +
-cyphesis_port_t                tcp      6767, 6769, 6780-6799 +
-cyphesis_port_t                udp      32771 +
-cyrus_imapd_port_t             tcp      2005 +
-daap_port_t                    tcp      3689 +
-daap_port_t                    udp      3689 +
-dbskkd_port_t                  tcp      1178 +
-dcc_port_t                     udp      6276, 6277 +
-dccm_port_t                    tcp      5679 +
-dccm_port_t                    udp      5679 +
-dey_keyneg_port_t              tcp      8750 +
-dey_keyneg_port_t              udp      8750 +
-dey_sapi_port_t                tcp      4330 +
-dhcpc_port_t                   tcp      68, 546, 5546 +
-dhcpc_port_t                   udp      68, 546, 5546 +
-dhcpd_port_t                   tcp      547, 548, 647, 847, 7911 +
-dhcpd_port_t                   udp      67, 547, 548, 647, 847 +
-dict_port_t                    tcp      2628 +
-distccd_port_t                 tcp      3632 +
-dns_port_t                     tcp      53 +
-dns_port_t                     udp      53 +
-dnssec_port_t                  tcp      8955 +
-dogtag_port_t                  tcp      7390 +
-echo_port_t                    tcp      7 +
-echo_port_t                    udp      7 +
-efs_port_t                     tcp      520 +
-embrace_dp_c_port_t            tcp      3198 +
-embrace_dp_c_port_t            udp      3198 +
-ephemeral_port_t               tcp      32768-61000 +
-ephemeral_port_t               udp      32768-61000 +
-epmap_port_t                   tcp      135 +
-epmap_port_t                   udp      135 +
-epmd_port_t                    tcp      4369 +
-epmd_port_t                    udp      4369 +
-fac_restore_port_t             tcp      5582 +
-fac_restore_port_t             udp      5582 +
-fingerd_port_t                 tcp      79 +
-flash_port_t                   tcp      843, 1935 +
-flash_port_t                   udp      1935 +
-fmpro_internal_port_t          tcp      5003 +
-fmpro_internal_port_t          udp      5003 +
-freeipmi_port_t                tcp      9225 +
-freeipmi_port_t                udp      9225 +
-ftp_data_port_t                tcp      20 +
-ftp_port_t                     tcp      21, 989, 990 +
-ftp_port_t                     udp      989, 990 +
-gatekeeper_port_t              tcp      1721, 7000 +
-gatekeeper_port_t              udp      1718, 1719 +
-gdomap_port_t                  tcp      538 +
-gdomap_port_t                  udp      538 +
-gds_db_port_t                  tcp      3050 +
-gds_db_port_t                  udp      3050 +
-gear_port_t                    tcp      43273 +
-gear_port_t                    udp      43273 +
-geneve_port_t                  tcp      6080 +
-giftd_port_t                   tcp      1213 +
-git_port_t                     tcp      9418 +
-git_port_t                     udp      9418 +
-glance_port_t                  tcp      9292 +
-glance_port_t                  udp      9292 +
-glance_registry_port_t         tcp      9191 +
-glance_registry_port_t         udp      9191 +
-gluster_port_t                 tcp      38465-38469, 24007-24027 +
-gluster_port_t                 udp      24007-24027 +
-gopher_port_t                  tcp      70 +
-gopher_port_t                  udp      70 +
-gpsd_port_t                    tcp      2947 +
-hadoop_datanode_port_t         tcp      50010 +
-hadoop_namenode_port_t         tcp      8020 +
-hddtemp_port_t                 tcp      7634 +
-hi_reserved_port_t             tcp      512-1023 +
-hi_reserved_port_t             udp      512-1023 +
-howl_port_t                    tcp      5335 +
-howl_port_t                    udp      5353 +
-hplip_port_t                   tcp      1782, 2207, 2208, 8290, 8292, 9100, 9101, 9102, 9220, 9221, 9222, 9280, 9281, 9282, 9290, 9291, 50000, 50002 +
-http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010 +
-http_cache_port_t              udp      3130 +
-http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000 +
-...+
 </code> </code>
  
-Notez par exemple que le serveur apache est autorisé d'utiliser les ports suivants :+===13.3 - Convertir un Système de Fichiers Ext2 en Ext3===
  
-<file> +Pour replacer le journal sur /dev/sdb12il convient d'utiliser la commande **tune2fs** :
-http_port_t                    tcp      8081, 443, 488, 8008, 8009, 8443, 9000 +
-</file>+
  
-Dans le cas où on souhaite qu'apache utilise le port **8090** par exemple, il est nécessaire de créer la règle adéquate avec la commande semanage :+<code> 
 +[root@redhat9 ~]# umount /mnt/sdb12 
 + 
 +[root@redhat9 ~]# tune2fs -j /dev/sdb12 
 +tune2fs 1.46.5 (30-Dec-2021) 
 +Creating journal inode: done 
 +</code> 
 + 
 +<WRAP center round important 60%> 
 +**Important** : Notez que vous avez du démonter la partition avant d'exécuter la commande **tune2fs**. 
 +</WRAP> 
 + 
 +===13.4 - Placer le Journal sur un autre Partition=== 
 + 
 +Le journal d'un système de fichiers peut être placé sur un autre périphérique bloc. 
 + 
 +Créez un système de fichiers sur /dev/sdb11 :
  
 <code> <code>
-[root@centos7 ~]# semanage port -a -t http_port_t -p tcp 8090+[root@redhat9 ~]# mdadm --stop /dev/md1 
 +mdadm: stopped /dev/md1 
 + 
 +[root@redhat9 ~]# mke2fs -O journal_dev /dev/sdb11 
 +mke2fs 1.46.5 (30-Dec-2021) 
 +/dev/sdb11 contains linux_raid_member file system labelled 'redhat.ittraining.loc' 
 +Proceed anyway? (y,N) y 
 +Discarding device blocks: done                             
 +Creating filesystem with 512000 1k blocks and 0 inodes 
 +Filesystem UUID: 5ab9820b-f652-4e79-99a9-07f5581cb312 
 +Superblock backups stored on blocks:  
 + 
 +Zeroing journal device:   
 </code> </code>
  
-Vous noterez que le port 8090 a été ajouté à la liste des ports reconnus comme valides par %%SELinux%% :+<WRAP center round important 60%> 
 +**Important** : Notez l'utilisation de l'option **-O**. 
 +</WRAP> 
 + 
 +Créez maintenant un système de fichiers Ext3 sur /dev/sdb12 en plaçant le journal sur /dev/sdb11 :
  
 <code> <code>
-[root@centos7 tmp]# semanage port -l | grep http +[root@redhat9 ~]# mke2fs -j -J device=/dev/sdb11 /dev/sdb12 
-http_cache_port_t              tcp      80808118, 8123, 10001-10010 +mke2fs 1.46.5 (30-Dec-2021) 
-http_cache_port_t              udp      3130 +Using journal device's blocksize: 1024 
-http_port_t                    tcp      80908081443488, 8008, 8009, 8443, 9000 +/dev/sdb12 contains a ext3 file system 
-pegasus_http_port_t            tcp      5988 +        last mounted on Thu Oct 24 08:29:20 2024 
-pegasus_https_port_t           tcp      5989+Proceed anyway? (y,N) y 
 +Discarding device blocks: done                             
 +Creating filesystem with 204800 1k blocks and 51200 inodes 
 +Filesystem UUID: ac7c133a-3f15-4fa4-81df-b1a0c808a4d0 
 +Superblock backups stored on blocks:  
 +        819324577409615734573729 
 + 
 +Allocating group tables: done                             
 +Writing inode tables: done                             
 +Adding journal to device /dev/sdb11: done 
 +Writing superblocks and filesystem accounting information: done 
 </code> </code>
  
-====La commande audit2allow====+<WRAP center round important 60%> 
 +**Important** : Notez que le journal a été placé sur /dev/sdb11 graĉe à l'utilisation de l'option **-J**. 
 +</WRAP> 
 + 
 +===13.5 - Modifier la Fréquence de Vérification du Système de Fichiers Ext3=== 
 + 
 +Pour modifier la fréquence de vérification du système de fichiers sur /dev/sdb12, il convient d'utiliser soit l'option **-c**, soit l'option **-i** :
  
 <code> <code>
-[root@centos7 tmp]# audit2allow --help +[root@redhat9 ~]# tune2fs -i 100d /dev/sdb12 
-Usage: audit2allow [options]+tune2fs 1.46.5 (30-Dec-2021) 
 +Setting interval between checks to 8640000 seconds 
 +</code>
  
 +Dernièrement, pour obtenir seul l'UUID du système de fichiers, utilisez les commandes **dumpe2fs** et **grep** :
 +
 +<code>
 +[root@redhat9 ~]# dumpe2fs /dev/sdb12 | grep UUID
 +dumpe2fs 1.46.5 (30-Dec-2021)
 +Filesystem UUID:          ac7c133a-3f15-4fa4-81df-b1a0c808a4d0
 +Journal UUID:             5ab9820b-f652-4e79-99a9-07f5581cb312
 +</code>
 +
 +====LAB #14 - Ext4====
 +
 +Le système de fichiers **Ext4** a été introduit dans le noyau **2.6.19** en mode expérimental et est devenu stable dans le noyau **2.6.28**.
 +
 +Ext4 n'est pas une évolution de Ext3. Cependant il a une compatibilité ascendante avec Ext3.
 +
 +Les fonctionnalités majeures d'Ext4 sont :
 +
 +  * la gestion des volumes d'une taille allant jusqu'à **1 024 pébioctets**,
 +  * l'allocation par **extents** qui permettent la pré-allocation d'une zone contiguë pour un fichier afin de minimiser la fragmentation.
 +
 +L'option **extents** est activée par défaut depuis le noyau **2.6.23**.
 +
 +La compatibilité ascendante avec ext3 comprend :
 +
 +  * la possibilité de monter une partition Ext3 en tant que partition Ext4,
 +  * la possibilité de monter une partition Ext4 en tant que partition Ext3 mais **uniquement** dans le cas où la partition Ext4 n'ait jamais utilisé l'allocation par **extents** pour enregistrer des fichiers, mais l'allocation binaire comprise par ext3.
 +
 +Pour plus d'informations concernant %%Ext4%%, consultez **[[http://fr.wikipedia.org/wiki/Ext4|cette page]]**.
 +
 +===14.1 - Créer un Système de Fichiers Ext4===
 +
 +Créez un système de fichiers Ext4 sur **/dev/sdb11** :
 +
 +<code>
 +[root@redhat9 ~]# mkfs.ext4 /dev/sdb11
 +mke2fs 1.46.5 (30-Dec-2021)
 +/dev/sdb11 contains a jbd file system
 +Proceed anyway? (y,N) y
 +Discarding device blocks: done                            
 +Creating filesystem with 512000 1k blocks and 128016 inodes
 +Filesystem UUID: 52c3fea6-d28b-40db-b7e5-d3c289b51043
 +Superblock backups stored on blocks: 
 +        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
 +
 +Allocating group tables: done                            
 +Writing inode tables: done                            
 +Creating journal (8192 blocks): done
 +Writing superblocks and filesystem accounting information: done 
 +</code>
 +
 +Consultez maintenant les caractéristiques du système de fichier :
 +
 +<code>
 +[root@redhat9 ~]# dumpe2fs /dev/sdb11 | more
 +dumpe2fs 1.46.5 (30-Dec-2021)
 +Filesystem volume name:   <none>
 +Last mounted on:          <not available>
 +Filesystem UUID:          52c3fea6-d28b-40db-b7e5-d3c289b51043
 +Filesystem magic number:  0xEF53
 +Filesystem revision #:    1 (dynamic)
 +Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
 +Filesystem flags:         signed_directory_hash 
 +Default mount options:    user_xattr acl
 +Filesystem state:         clean
 +Errors behavior:          Continue
 +Filesystem OS type:       Linux
 +Inode count:              128016
 +Block count:              512000
 +Reserved block count:     25600
 +Overhead clusters:        42672
 +Free blocks:              469314
 +Free inodes:              128005
 +First block:              1
 +Block size:               1024
 +Fragment size:            1024
 +Group descriptor size:    64
 +Reserved GDT blocks:      256
 +Blocks per group:         8192
 +Fragments per group:      8192
 +Inodes per group:         2032
 +Inode blocks per group:   508
 +Flex block group size:    16
 +Filesystem created:       Thu Oct 24 08:35:02 2024
 +Last mount time:          n/a
 +Last write time:          Thu Oct 24 08:35:02 2024
 +Mount count:              0
 +Maximum mount count:      -1
 +Last checked:             Thu Oct 24 08:35:02 2024
 +Check interval:           0 (<none>)
 +Lifetime writes:          286 kB
 +Reserved blocks uid:      0 (user root)
 +Reserved blocks gid:      0 (group root)
 +First inode:              11
 +Inode size:               256
 +Required extra isize:     32
 +Desired extra isize:      32
 +Journal inode:            8
 +Default directory hash:   half_md4
 +Directory Hash Seed:      6bf0e2d7-9fb0-4c7b-8d32-b0ca3113c0cd
 +Journal backup:           inode blocks
 +Checksum type:            crc32c
 +Checksum:                 0xed59106b
 +Journal features:         (none)
 +Total journal size:       8M
 +Total journal blocks:     8192
 +Max transaction length:   8192
 +Fast commit length:       0
 +Journal sequence:         0x00000001
 +Journal start:            0
 +
 +--More--
 +</code>
 +
 +===14.2 - Ajouter une Etiquette au Système de Fichiers Ext4===
 +
 +Utilisez la commande **e2label** pour associer une étiquette au système de fichiers :
 +
 +<code>
 +[root@redhat9 ~]# e2label /dev/sdb11 my_ext4
 +
 +[root@redhat9 ~]# dumpe2fs /dev/sdb11 | more
 +dumpe2fs 1.46.5 (30-Dec-2021)
 +Filesystem volume name:   my_ext4
 +Last mounted on:          <not available>
 +Filesystem UUID:          52c3fea6-d28b-40db-b7e5-d3c289b51043
 +Filesystem magic number:  0xEF53
 +Filesystem revision #:    1 (dynamic)
 +Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
 +Filesystem flags:         signed_directory_hash 
 +Default mount options:    user_xattr acl
 +Filesystem state:         clean
 +Errors behavior:          Continue
 +Filesystem OS type:       Linux
 +Inode count:              128016
 +Block count:              512000
 +Reserved block count:     25600
 +Overhead clusters:        42672
 +Free blocks:              469314
 +Free inodes:              128005
 +First block:              1
 +Block size:               1024
 +Fragment size:            1024
 +Group descriptor size:    64
 +Reserved GDT blocks:      256
 +Blocks per group:         8192
 +Fragments per group:      8192
 +Inodes per group:         2032
 +Inode blocks per group:   508
 +Flex block group size:    16
 +Filesystem created:       Thu Oct 24 08:35:02 2024
 +Last mount time:          n/a
 +Last write time:          Thu Oct 24 08:36:06 2024
 +Mount count:              0
 +Maximum mount count:      -1
 +Last checked:             Thu Oct 24 08:35:02 2024
 +Check interval:           0 (<none>)
 +Lifetime writes:          286 kB
 +Reserved blocks uid:      0 (user root)
 +Reserved blocks gid:      0 (group root)
 +First inode:              11
 +Inode size:               256
 +Required extra isize:     32
 +Desired extra isize:      32
 +Journal inode:            8
 +Default directory hash:   half_md4
 +Directory Hash Seed:      6bf0e2d7-9fb0-4c7b-8d32-b0ca3113c0cd
 +Journal backup:           inode blocks
 +Checksum type:            crc32c
 +Checksum:                 0x22e9a63d
 +Journal features:         (none)
 +Total journal size:       8M
 +Total journal blocks:     8192
 +Max transaction length:   8192
 +Fast commit length:       0
 +Journal sequence:         0x00000001
 +Journal start:            0
 +
 +--More--
 +</code>
 +
 +<WRAP center round important 60%>
 +**Important** - Notez que l'étiquette doit être de 16 caractères maximum.
 +</WRAP>
 +
 +Créez un point de montage dans **/mnt** et essayez de monter **/dev/sdb11** en tant qu'Ext3 :
 +
 +<code>
 +[root@redhat9 ~]# mkdir /mnt/sdb11
 +
 +[root@redhat9 ~]# mount -t ext3 /dev/sdb11 /mnt/sdb11
 +mount: /mnt/sdb11: wrong fs type, bad option, bad superblock on /dev/sdb11, missing codepage or helper program, or other error.
 +</code>
 +
 +<WRAP center round important 60%>
 +**Important** - Notez l'erreur qui est signalée.
 +</WRAP>
 +
 +Montez de nouveau la partition **sans** stipuler le type de système de fichiers :
 +
 +<code>
 +[root@redhat9 ~]# mount /dev/sdb11 /mnt/sdb11
 +
 +[root@redhat9 ~]# mount | grep sdb11
 +/dev/sdb11 on /mnt/sdb11 type ext4 (rw,relatime,seclabel)
 +</code>
 +
 +<WRAP center round important 60%>
 +**Important** - Constatez que la partition a été monté en tant qu'Ext4.
 +</WRAP>
 +
 +===14.3 - Convertir un Système de Fichiers Ext3 en Ext4===
 +
 +Créez un système de fichiers ext3 sur /dev/sdb12 :
 +
 +<code>
 +[root@redhat9 ~]# mkfs.ext3 /dev/sdb12
 +mke2fs 1.46.5 (30-Dec-2021)
 +/dev/sdb12 contains a ext3 file system
 +        created on Thu Oct 24 08:33:41 2024
 +Proceed anyway? (y,N) y
 +Discarding device blocks: done                            
 +Creating filesystem with 204800 1k blocks and 51200 inodes
 +Filesystem UUID: aed27e98-82d1-4a9d-a072-5f73162e8f4c
 +Superblock backups stored on blocks: 
 +        8193, 24577, 40961, 57345, 73729
 +
 +Allocating group tables: done                            
 +Writing inode tables: done                            
 +Creating journal (4096 blocks): done
 +Writing superblocks and filesystem accounting information: done 
 +</code>
 +
 +Montez maintenant **/dev/sdb12** sur /mnt/sdb12 :
 +
 +<code>
 +[root@redhat9 ~]# mount /dev/sdb12 /mnt/sdb12
 +
 +[root@redhat9 ~]# ls -l /mnt/sdb12
 +total 12
 +drwx------. 2 root root 12288 Oct 24 08:38 lost+found
 +</code>
 +
 +Créez le fichier **/mnt/sdb12/check_file** :
 +
 +<code>
 +[root@redhat9 ~]# touch /mnt/sdb12/check_file
 +</code>
 +
 +Injectez la chaine **check file** dans le fichier /mnt/sdb12/check_file puis démontez /dev/sdb12 :
 +
 +<code>
 +[root@redhat9 ~]# echo "check file" > /mnt/sdb12/check_file
 +
 +[root@redhat9 ~]# umount /dev/sdb12
 +</code>
 +
 +Exécutez e2fsck sur /dev/sda12 :
 +
 +<code>
 +[root@redhat9 ~]# e2fsck /dev/sdb12
 +e2fsck 1.46.5 (30-Dec-2021)
 +/dev/sdb12: clean, 12/51200 files, 18527/204800 blocks
 +</code>
 +
 +Convertissez /dev/sdb12 en Ext4 :
 +
 +<code>
 +[root@redhat9 ~]# tune2fs -O extents,uninit_bg,dir_index /dev/sdb12
 +tune2fs 1.46.5 (30-Dec-2021)
 +</code>
 +
 +Optimisez le système de fichiers :
 +
 +<code>
 +[root@redhat9 ~]# e2fsck -fDC0 /dev/sdb12
 +e2fsck 1.46.5 (30-Dec-2021)
 +Pass 1: Checking inodes, blocks, and sizes
 +Pass 2: Checking directory structure                                           
 +Pass 3: Checking directory connectivity
 +Pass 3A: Optimizing directories
 +Pass 4: Checking reference counts                                              
 +Pass 5: Checking group summary information
 +                                                                                
 +/dev/sdb12: ***** FILE SYSTEM WAS MODIFIED *****
 +/dev/sdb12: 12/51200 files (0.0% non-contiguous), 18527/204800 blocks
 +</code>
 +
 +Essayez de monter **/dev/sdb12** en tant qu'Ext3 :
 +
 +<code>
 +[root@redhat9 ~]# mount -t ext3 /dev/sdb12 /mnt/sdb12
 +mount: /mnt/sdb12: wrong fs type, bad option, bad superblock on /dev/sdb12, missing codepage or helper program, or other error.
 +</code>
 +
 +Montez /dev/sdb12 sans spécifier le type de fichiers Ext3 et vérifiez le contenu du fichier **check_file** :
 +
 +<code>
 +[root@redhat9 ~]# mount /dev/sdb12 /mnt/sdb12
 +
 +[root@redhat9 ~]# ls -l /mnt/sdb12
 +total 13
 +-rw-r--r--. 1 root root    11 Oct 24 08:39 check_file
 +drwx------. 2 root root 12288 Oct 24 08:38 lost+found
 +
 +[root@redhat9 ~]# cat /mnt/sdb12/check_file
 +check file
 +</code>
 +
 +Dernièrement, pour obtenir seul l'UUID du système de fichiers, utilisez les commandes **dumpe2fs** et **grep** :
 +
 +<code>
 +[root@redhat9 ~]# dumpe2fs /dev/sdb11 | grep UUID
 +dumpe2fs 1.46.5 (30-Dec-2021)
 +Filesystem UUID:          52c3fea6-d28b-40db-b7e5-d3c289b51043
 +
 +[root@redhat9 ~]# dumpe2fs /dev/sdb12 | grep UUID
 +dumpe2fs 1.46.5 (30-Dec-2021)
 +Filesystem UUID:          aed27e98-82d1-4a9d-a072-5f73162e8f4c
 +</code>
 +
 +====LAB #15 - XFS====
 +
 +XFS est un système de fichiers 64-bit journalisé de haute performance crée par SGI pour son système d'exploitation IRIX. XFS est inclus par défaut avec les versions du noyau Linux 2.5.xx et 2.6.xx. XFS est le système de fichiers par défaut de RedHat 9.
 +
 +<WRAP center round important 60%>
 +**Important** : Le système de fichiers XFS permet l'augmentation de sa taille à chaud. Par contre, la taille d'un système de fichiers XFS ne peut pas être réduite.
 +</WRAP>
 +
 +Pour plus d'informations concernant XFS, consultez **[[http://en.wikipedia.org/wiki/XFS|cette page]]**.
 +
 +===15.1 - Créer un Système de Fichiers XFS===
 +
 +Démontez **/dev/sdb12** :
 +
 +<code>
 +[root@redhat9 ~]# umount /dev/sdb12
 +</code>
 +
 +Créez un système de fichiers XFS sur la partition **/dev/sdb12** :
 +
 +<code>
 +[root@redhat9 ~]# mkfs.xfs -f /dev/sdb12
 +Filesystem should be larger than 300MB.
 +Log size should be at least 64MB.
 +Support for filesystems like this one is deprecated and they will not be supported in future releases.
 +meta-data=/dev/sdb12             isize=512    agcount=4, agsize=12800 blks
 +                               sectsz=512   attr=2, projid32bit=1
 +                               crc=1        finobt=1, sparse=1, rmapbt=0
 +                               reflink=1    bigtime=1 inobtcount=1 nrext64=0
 +data                           bsize=4096   blocks=51200, imaxpct=25
 +                               sunit=0      swidth=0 blks
 +naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
 +log      =internal log           bsize=4096   blocks=1368, version=2
 +                               sectsz=512   sunit=0 blks, lazy-count=1
 +realtime =none                   extsz=4096   blocks=0, rtextents=0
 +Discarding blocks...Done.
 +</code>
 +
 +<WRAP center round important 60%>
 +**Important** - Notez l'utilisation de l'option **-f** afin d'écraser le système de fichiers Ext4 existant.
 +</WRAP>
 +
 +Consultez maintenant les caractéristiques du système de fichier :
 +
 +<code>
 +[root@redhat9 ~]# xfs_info /dev/sdb12
 +meta-data=/dev/sdb12             isize=512    agcount=4, agsize=12800 blks
 +                               sectsz=512   attr=2, projid32bit=1
 +                               crc=1        finobt=1, sparse=1, rmapbt=0
 +                               reflink=1    bigtime=1 inobtcount=1 nrext64=0
 +data                           bsize=4096   blocks=51200, imaxpct=25
 +                               sunit=0      swidth=0 blks
 +naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
 +log      =internal log           bsize=4096   blocks=1368, version=2
 +                               sectsz=512   sunit=0 blks, lazy-count=1
 +realtime =none                   extsz=4096   blocks=0, rtextents=0
 +</code>
 +
 +===15.2 - Ajouter une Etiquette au Système de Fichiers XFS===
 +
 +Utilisez la commande **xfs_admin** pour associer une étiquette au système de fichiers :
 +
 +<code>
 +[root@redhat9 ~]# xfs_admin -L my_xfs /dev/sdb12
 +writing all SBs
 +new label = "my_xfs"
 +</code>
 +
 +Pour voir l'étiquette, utilisez la commande suivante :
 +
 +<code>
 +root@redhat9 ~]# xfs_admin -l /dev/sdb12
 +label = "my_xfs"
 +</code>
 +
 +<WRAP center round important 60%>
 +**Important** - Notez que l'étiquette doit être de 12 caractères maximum.
 +</WRAP>
 +
 +Dernièrement, pour obtenir seul l'UUID du système de fichiers, utilisez la commande **xfs-admin** et l'option **-u** :
 +
 +<code>
 +[root@redhat9 ~]# xfs_admin -u /dev/sdb12
 +UUID = 0b61a609-6997-4c63-9de9-d3d316c4d5d7
 +</code>
 +
 +<WRAP center round important 60%>
 +**Important** - La commande **xfs_metadump** est utilisée pour sauvegarder les méta-données du système de fichiers, tandis que la commande **xfs_mdrestore** est utilisée pour restaurer les les méta-données du système de fichiers.
 +</WRAP>
 +
 +=====Autres Systèmes de Fichiers=====
 +
 +<WRAP center round important 60%>
 +**Important** - Veuillez noter que le support des systèmes de fichiers **ReiserFS**, **JFS** et **Btrfs** est **absent** du noyau des distributions de Red Hat.
 +</WRAP>
 +
 +====ReiserFS====
 +
 +%%ReiserFS%% permet :
 +
 +  * de meilleurs temps d'accès à des sous-répertoires que Ext3, même ceux contenant des dizaines de milliers de fichiers,
 +  * une plus grande efficacité pour ce qui concerne le stockage des fichiers moins de quelques ko. Le gain d'espace peut aller jusqu'à 10% par rapport à Ext2/Ext3.
 +
 +Pour plus d'informations concernant %%ReiserFS%%, consultez **[[http://en.wikipedia.org/wiki/ReiserFS|cette page]]**.
 +
 +====JFS====
 +
 +JFS //Journaled File System// est un système de fichiers journalisé mis au point par IBM et disponible sous licence GPL.
 +
 +Pour plus d'informations concernant JFS, consultez **[[http://en.wikipedia.org/wiki/JFS_(file_system)|cette page]]**.
 +
 +====Btrfs====
 +
 +**[[https://btrfs.wiki.kernel.org/|Btrfs]]**, (B-tree file system, prononcé ButterFS) est un système de fichiers expérimental basé sur la copie sur écriture sous licence GNU GPL, développé principalement par Oracle, Red Hat, Fujitsu, Intel, SUSE et STRATO AG, qui s'inspire grandement du système de fichiers ZFS utilisé par Solaris.
 +
 +A noter sont les points suivants :
 +
 +  * Btrfs utilise des extents,
 +  * Btrfs stocke les données des très petits fichiers directement dans l'extent du fichier répertoire, et non dans un extent séparé,
 +  * Btrfs gère une notion de « sous-volumes » permettant ainsi des snapshots,
 +  * Btrfs possède ses techniques propres de protection des données,
 +  * Btrfs permet de redimensionner à chaud la taille du système de fichiers,
 +  * Btrfs gère le RAID 0 ainsi que le RAID 1 logiciel,
 +  * Btrfs gère la comprssion du système de fichiers.
 +
 +=====Comparaison des Commandes par Système de Fichiers=====
 +
 +^ Description ^ Ext3 ^ Ext4 ^ XFS ^ ReiserFS ^ JFS ^ Btrfs ^
 +| Build a Linux filesystem | mkfs.ext3 (mke2fs -j) | mkfs.ext4 (mke4fs) | mkfs.xfs | mkfs.reiserfs (mkreiserfs) | mkfs.jfs (jfs_mkfs) | mkfs.btrfs |
 +| Check a Linux filesystem | e2fsck | e2fsck | xfs_check / xfs_repair | reiserfsck | jfs_fsck | btrfsck |
 +| Adjust tunable filesystem parameters Linux filesystems | tune2fs | tune2fs | xfs_admin | reiserfstune | jfs_tune | btrfs-show-super, btrfs filesystem show, et btrfs filesystem df |
 +| File system resizer | resize2fs | resize2fs | xfs_growfs | resize_reiserfs | S/O | btrfs filesystem resize |
 +| Dump filesystem information | dumpe2fs | dumpe2fs | xfs_info / xfs_metadump | debugreiserfs | jfs_tune | btrfstune |
 +| File system debugger | debugfs | debugfs | xfs_db | debugreiserfs | jfs_debugfs | btrfs-debug-tree |
 +| Change the label on a filesystem | e2label | e2label | xfs_admin | reiserfstune | jfs_tune | btrfs filesystem label |
 +
 +=====LAB #16 - Créer un Système de Fichiers ISO=====
 +
 +====16.1 - La Commande mkisofs====
 +
 +Pour créer un fichier ISO à partir d'une arborescence de fichiers, il convient d'utiliser la commande **mkisofs** :
 +
 +<code>
 +[root@redhat9 ~]# cd /tmp
 +
 +[root@redhat9 tmp]# mkisofs -r -T -o tmp.iso .
 +bash: mkisofs: command not found...
 +Install package 'xorriso' to provide command 'mkisofs'? [N/y] y
 +
 +
 + * Waiting in queue... 
 + * Loading list of packages.... 
 +The following packages have to be installed:
 + libburn-1.5.4-4.el9.x86_64     Library for reading, mastering and writing optical discs
 + libisoburn-1.5.4-4.el9.x86_64  Library to enable creation and expansion of ISO-9660 filesystems
 + libisofs-1.5.4-4.el9.x86_64    Library to create ISO 9660 disk images
 + xorriso-1.5.4-4.el9.x86_64     ISO-9660 and Rock Ridge image manipulation tool
 +Proceed with changes? [N/y] y
 +
 +
 + * Waiting in queue... 
 + * Waiting for authentication... 
 + * Waiting in queue... 
 + * Downloading packages... 
 + * Requesting data... 
 + * Testing changes... 
 + * Installing packages... 
 +xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.
 +
 +Drive current: -outdev 'stdio:tmp.iso'
 +Media current: stdio file, overwriteable
 +Media status : is blank
 +Media summary: 0 sessions, 0 data blocks, 0 data, 37.0g free
 +xorriso : NOTE : -as genisofs: Ignored option '-T'
 +Added to ISO image: directory '/'='/tmp'
 +xorriso : UPDATE :      37 files added in 1 seconds
 +xorriso : UPDATE :      37 files added in 1 seconds
 +ISO image produced: 202 sectors
 +Written to medium : 202 sectors at LBA 0
 +Writing to 'stdio:tmp.iso' completed successfully.
 +</code>
 +
 +Le fichier ISO peut être monter en utilisant un périphérique de type **loop** :
 +
 +<code>
 +[root@redhat9 tmp]# mount tmp.iso /mnt -o loop
 +mount: /mnt: WARNING: source write-protected, mounted read-only.
 +
 +[root@redhat9 tmp]# ls /mnt
 +copy.html        file2                                                                         systemd-private-aea59c32b8804212a7e18c402fe2ec29-power-profiles-daemon.service-NoPIRE
 +dbus-59XI29LyuI  systemd-private-aea59c32b8804212a7e18c402fe2ec29-colord.service-pQIfSx        systemd-private-aea59c32b8804212a7e18c402fe2ec29-rtkit-daemon.service-RLivCo
 +dbus-K54lUGWRFp  systemd-private-aea59c32b8804212a7e18c402fe2ec29-dbus-broker.service-Ca2dJ4   systemd-private-aea59c32b8804212a7e18c402fe2ec29-switcheroo-control.service-DAQKND
 +dbus-pLIWTki5B4  systemd-private-aea59c32b8804212a7e18c402fe2ec29-httpd.service-LSYL6G         systemd-private-aea59c32b8804212a7e18c402fe2ec29-systemd-logind.service-areXk6
 +dbus-UpdINCi7Cg  systemd-private-aea59c32b8804212a7e18c402fe2ec29-kdump.service-T3uYS0         systemd-private-aea59c32b8804212a7e18c402fe2ec29-upower.service-gbX2j7
 +file1            systemd-private-aea59c32b8804212a7e18c402fe2ec29-ModemManager.service-yO8983  vg0_backup
 +
 +[root@redhat9 tmp]# ls
 +copy.html        systemd-private-aea59c32b8804212a7e18c402fe2ec29-colord.service-pQIfSx                 systemd-private-aea59c32b8804212a7e18c402fe2ec29-switcheroo-control.service-DAQKND
 +dbus-59XI29LyuI  systemd-private-aea59c32b8804212a7e18c402fe2ec29-dbus-broker.service-Ca2dJ4            systemd-private-aea59c32b8804212a7e18c402fe2ec29-systemd-logind.service-areXk6
 +dbus-K54lUGWRFp  systemd-private-aea59c32b8804212a7e18c402fe2ec29-httpd.service-LSYL6G                  systemd-private-aea59c32b8804212a7e18c402fe2ec29-upower.service-gbX2j7
 +dbus-pLIWTki5B4  systemd-private-aea59c32b8804212a7e18c402fe2ec29-kdump.service-T3uYS0                  tmp.iso
 +dbus-UpdINCi7Cg  systemd-private-aea59c32b8804212a7e18c402fe2ec29-ModemManager.service-yO8983           vg0_backup
 +file1            systemd-private-aea59c32b8804212a7e18c402fe2ec29-power-profiles-daemon.service-NoPIRE
 +file2            systemd-private-aea59c32b8804212a7e18c402fe2ec29-rtkit-daemon.service-RLivCo
 +</code>
 +
 +Démontez maintenant le fichier ISO :
 +
 +<code>
 +[root@redhat9 tmp]# cd ~
 +
 +[root@redhat9 ~]# umount /tmp/tmp.iso
 +</code>
 +
 +====Options de la Commande mkisofs====
 +
 +Les options de cette commande sont :
 +
 +<code>
 +[root@redhat9 ~]# mkisofs --help
 +Usage: xorriso -as mkisofs [options] file...
 +Note: This is not mkisofs. See xorriso -help, xorriso -version, man xorrisofs
 Options: Options:
-  --version             show program's version number and exit +  -f, -follow-links           Follow symbolic links 
-  -h, --help            show this help message and exit +  -graft-points               Allow to use graft points for filenames 
-  -b, --boot            audit messages since last boot conflicts with -i +  -help                       Print option help 
-  -a, --all             read input from audit log conflicts with -i +  -hfsplus                    Generate HFS+ filesystem 
-  -p POLICY, --policy=POLICY +  -hfsplus-file-creator-type CREATOR TYPE iso_rr_path 
-                        Policy file to use for analysis +                              Attach creator and type to a File 
-  -d, --dmesg           read input from dmesg conflicts with --all and +  -hfs-bless FOLDER_NAME      Name of Folder to be blessed 
-                        --input +  -hfs-bless-by BLESS_TYPE ISO_RR_PATH 
-  -i INPUT, --input=INPUT +                              Bless ISO_RR_PATH by BLESS_TYPE {p,i,s,9,x} 
-                        read input from <input> conflicts with -a +  -hfsplus-serial-no HEXSTRING 
-  -l, --lastreload      read input only after the last reload +                              HFS serial number: 16 characters [0-9a-fA-F] 
-  -r, --requires        generate require statements for rules +  -hfsplus-block-size NUMBER  Set HFS+ block size 
-  -m MODULE, --module=MODULE +  -apm-block-size NUMBER      Set Apple Partition Map block size 
-                        set the module name implies --requires +  -hide GLOBFILE              Hide ISO9660/RR file 
-  -M MODULE_PACKAGE, --module-package=MODULE_PACKAGE +  -hide-list FILE             File with list of ISO9660/RR files to hide 
-                        generate module package conflicts with -o and -m +  -hide-joliet GLOBFILE       Hide Joliet file 
-  -o OUTPUT, --output=OUTPUT +  -hide-joliet-list FILE      File with list of Joliet files to hide 
-                        append output to <filename>, conflicts with -M +  -hide-hfsplus GLOBFILE      Hide HFS+ file 
-  -D, --dontaudit       generate policy with dontaudit rules +  -hide-hfsplus-list FILE     File with list of HFS+ files to hide 
-  -R, --reference       generate refpolicy style output +  -input-charset CHARSET      Local input charset for file name conversion 
-  -N, --noreference     do not generate refpolicy style output +  -output-charset CHARSET     Output charset for file name conversion 
-  -v, --verbose         explain generated output +  -iso-level LEVEL            Set ISO9660 conformance level (1..3) or 4 for ISO9660 version 2 
-  -e, --explain         fully explain generated output +  -disallow_dir_id_ext        Do not allow dot in ISO directory names 
-  -t TYPE, --type=TYPE  only process messages with a type that matches this +  -J, -joliet                 Generate Joliet directory information 
-                        regex +  -joliet-long                Allow Joliet file names to be 103 Unicode characters 
-  --perm-map=PERM_MAP   file name of perm map +  -joliet-utf16               Encode Joliet names in UTF-16BE rather than UCS-2 
-  --interface-info=INTERFACE_INFO +  -U, -untranslated-filenames Allow Untranslated filenames (for HPUX & AIX - violates ISO9660). 
-                        file name of interface information +  -untranslated_name_len LEN  Allow up to LEN (1..96) name characters (heavily violates ISO9660). 
-  --debug               leave generated modules for -M +  -allow-lowercase            Allow lower case characters in addition to the current character set (violates ISO9660) 
-  -w, --why             Translates SELinux audit messages into a description +  -relaxed-filenames          Allow 7 bit ASCII except lower case characters (violates ISO9660) 
-                        of why the access was denied+  -d, -omit-period            Omit trailing periods from filenames (violates ISO9660) 
 +  -l, -full-iso9660-filenames Allow full 31 character filenames for ISO9660 names 
 +  -max-iso9660-filenames      Allow 37 character filenames for ISO9660 names (violates ISO9660) 
 +  -N, -omit-version-number    Omit version number from ISO9660 filename (violates ISO9660) 
 +  -D, -disable-deep-relocation 
 +                              Disable deep directory relocation (violates ISO9660) 
 +  -hide-rr-moved              Relocate deep directories to /.rr_moved 
 +  -rr_reloc_dir NAME          Set deep directory relocation target in root 
 +  -uid uid                    Make the owner of all files this uid. 
 +  -gid gid                    Make the group owner of all files this gid. 
 +  -o FILE, -output FILE       Set output file name 
 +  -m GLOBFILE, -exclude GLOBFILE 
 +                              Exclude file name 
 +  -x FILE, -old-exclude FILE  Exclude file name 
 +  -exclude-list FILE          File with list of file names to exclude 
 +  -pad                        Pad output by 300k (default) 
 +  -no-pad                     Do not pad output 
 +  -M FILE, -prev-session FILE Set path to previous session to merge 
 +  -C PARAMS, -cdrecord-params PARAMS 
 +                              Magic paramters from cdrecord 
 +  -dir-mode mode              Make the mode of all directories this mode. 
 +  -file-mode mode             Make the mode of all plain files this mode. 
 +  -path-list FILE             File with list of pathnames to process 
 +  --quoted_path_list FILE     File with list of quoted pathnames to process 
 +  -print-size                 Print estimated filesystem size and exit 
 +  -quiet                      Run quietly 
 +  -gui                        Switch behaviour for GUI 
 +  -R, -rock                   Generate Rock Ridge directory information 
 +  -r, -rational-rock          Generate rationalized Rock Ridge directory information 
 +  --norock                    Disable Rock Ridge. (Strongly discouraged !) 
 +  -file_name_limit LEN        Set truncation limit for Rock Ridge names 
 +  --hardlinks                 Record eventual hard link relations of files 
 +  --acl                       Record eventual ACLs of files 
 +  --xattr                     Record eventual user space xattr of files 
 +  --xattr-any                 Record xattr of any namespacenot only user. 
 +  --md5                       Compute and record MD5 checksums of data files 
 +  --scdbackup_tag PATH NAME   With --md5 record a scdbackup checksum tag 
 +  --for_backup                Use all options which improve backup fidelity 
 +  -V ID, -volid ID            Set Volume ID 
 +  -volset ID                  Set Volume set ID 
 +  -publisher PUB              Set Volume publisher 
 +  -A ID, -appid ID            Set Application ID 
 +  -sysid ID                   Set System ID 
 +  -p PREP, -preparer PREP     Set Volume preparer 
 +  -abstract FILE              Set Abstract filename 
 +  -biblio FILE                Set Bibliographic filename 
 +  -copyright FILE             Set Copyright filename 
 +  --application_use CHAR|PATH  Set content of Application Use field 
 +  -jigdo-jigdo FILE           Produce jigdo .jigdo file as well as the .iso 
 +  -jigdo-template FILE        Produce a jigdo .template file as well as the .iso 
 +  -jigdo-min-file-size SIZE   Minimum size for a file to be listed in the jigdo file 
 +  -jigdo-force-checksum PTRN  Pattern(s) where files MUST match an externally-supplied checksum 
 +  -jigdo-force-md5 PATTERN    Outdated alias of -jigdo-force-checksum 
 +  -jigdo-exclude PATTERN      Pattern(s) to exclude from the jigdo file 
 +  -jigdo-map PATTERN1=PATTERN2 
 +                              Pattern(s) to map paths (e.g. Debian=/mirror/debian) 
 +  -checksum-list FILE         File containing checksums of the files that should be checked 
 +  -md5-list FILE              Outdated alias of -checksum-list 
 +  -jigdo-checksum-algorithm ALGORITHM 
 +                              Choose algorithm for file matching checksums: md5sha256 
 +                              Expected in the -checksum-list FILE, written into .jigdo file. 
 +  -jigdo-template-compress ALGORITHM 
 +                              Choose to use gzip or bzip2 compression for template data; default is gzip 
 +  -checksum_algorithm_iso alg1,alg2,... 
 +                              Specify the checksum types desired for the output image (in .jigdo) 
 +  -checksum_algorithm_template alg1,alg2,... 
 +                              Specify the checksum types desired for the output jigdo template 
 +  -eltorito-platform          Set El Torito platform id for the next boot entry 
 +  -b FILE, -eltorito-boot FILE 
 +                              Set El Torito boot image name 
 +  -eltorito-alt-boot          Start specifying alternative El Torito boot parameters 
 +  --efi-boot FILE             Set El Torito EFI boot image name and type 
 +  -e FILE                     Set EFI boot image name (more rawly) 
 +  -c FILE, -eltorito-catalog FILE 
 +                              Set El Torito boot catalog name 
 +  --boot-catalog-hide         Hide boot catalog from ISO9660/RR and Joliet 
 +  -boot-load-size #           Set numbers of load sectors 
 +  -hard-disk-boot             Boot image is hard disk image 
 +  -no-emul-boot               Boot image is 'no emulation' image 
 +  -boot-info-table            Patch boot image with info table 
 +  --grub2-boot-info           Patch boot image at byte 2548 
 +  -eltorito-id ID             Set El Torito Id String 
 +  -eltorito-selcrit HEXBYTES  Set El Torito Selection Criteria 
 +  -isohybrid-gpt-basdat       Mark El Torito boot image as Basic Data in GPT 
 +  -isohybrid-gpt-hfsplus      Mark El Torito boot image as HFS+ in GPT 
 +  -isohybrid-apm-hfsplus      Mark El Torito boot image as HFS+ in APM 
 +  -part_like_isohybrid        Mark in MBR, GPT, APM without -isohybrid-mbr 
 +  -iso_mbr_part_type          Set type byte or GUID of ISO partition in MBR 
 +                              or type GUID if a GPT ISO partition emerges. 
 +  --gpt_disk_guid GUID        Set GPT disk GUID or choose automatic GUID 
 +  -G FILE, -generic-boot FILE Set generic boot image name 
 +  --embedded-boot FILE        Alias of -G 
 +  --protective-msdos-label    Patch System Area by partition table 
 +  --mbr-force-bootable        Enforce existence of bootable flag in MBR 
 +  -partition_offset LBA       Make image mountable by first partition, too 
 +  -partition_sec_hd NUMBER    Define number of sectors per head 
 +  -partition_hd_cyl NUMBER    Define number of heads per cylinder 
 +  -partition_cyl_align MODE   Control cylinder alignment: off, on, auto, all 
 +  -mips-boot FILE             Set mips boot image name (relative to image root) 
 +  -mipsel-boot FILE           Set mipsel boot image name (relative to image root) 
 +  -B FILES, -sparc-boot FILES Set sparc boot image names 
 +  -sparc-label label text     Set sparc boot disk label 
 +  -hppa-cmdline CMDLINE       Set hppa boot command line 
 +  -hppa-kernel-32 FILE        Set hppa 32-bit image name (relative to image root) 
 +  -hppa-kernel-64 FILE        Set hppa 64-bit image name (relative to image root) 
 +  -hppa-bootloader FILE       Set hppa boot loader file name (relative to image root) 
 +  -hppa-ramdisk FILE          Set hppa ramdisk file name (relative to image root) 
 +  -hppa-hdrversion NUMBER     Set hppa PALO header version to 4 or 5 
 +  -alpha-boot FILE            Set alpha boot image name (relative to image root) 
 +  --grub2-sparc-core FILE     Set path of core file for disk label patching 
 +  -efi-boot-part DISKFILE|--efi-boot-image 
 +                              Set data source for EFI System Partition 
 +  -chrp-boot-part             Mark ISO image size by MBR partition type 0x96 
 +  -chrp-boot                  Alias of -chrp-boot-part 
 +  -prep-boot-part DISKFILE    Set data source for MBR partition type 0x41 
 +  -append_partition NUMBER TYPE FILE 
 +                              Append FILE after image. TYPE is hex: 0x.. or 
 +                              a GUID to be used if -appended_part_as_gpt. 
 +  -appended_part_as_gpt       mark appended partitions in GPT instead of MBR. 
 +  -appended_part_as_apm       mark appended partitions in APM. 
 +  --modification-date=YYYYMMDDhhmmsscc 
 +                              Override date of creation and modification 
 +  --set_all_file_dates TIME   Override mtime, atime, ctime in all files 
 +  -isohybrid-mbr FILE         Set SYSLINUX mbr/isohdp[fp]x*.bin for isohybrid 
 +  --grub2-mbr FILE            Set GRUB2 MBR for boot image address patching 
 +  --sort-weight NUMBER FILE   Set LBA weight number to file or file tree 
 +  --sort-weight-list DISKFILE Read list of NUMBER FILE pairs for --sort-weight 
 +  --sort-weight-patterns DISKFILE  --sort-weight-list with pattern expansion 
 +  --stdio_sync on|off|number  Control forced output to disk files 
 +  --no-emul-toc               Save 64 kB size on random access output files 
 +  --emul-toc                  Multi-session history on such output files 
 +  --old-empty                 Use old style block addresses for empty files 
 +  -z, -transparent-compression 
 +                              Enable transparent compression of files 
 +  --zisofs-version-2          Enable processing of zisofs version 2 files 
 +  --zisofs2-susp-z2           Produce Z2 entries for zisofs version 2 
 +  --zisofs2-susp-zf           Produce ZF entries for zisofs version 2 
 +  -root DIR                   Set root directory for all new files and directories 
 +  -old-root DIR               Set root directory in previous session that is searched for files 
 +  --old-root-no-md5           Do not record and use MD5 with -old-root 
 +  --old-root-no-ino           Do not use disk inode numbers with -old-root 
 +  --old-root-devno            Use disk device numbers with -old-root 
 +  -log-file LOG_FILE          Re-direct messages to LOG_FILE 
 +  --no_rc                     Do not execute startup files 
 +  -v, -verbose                Verbose 
 +  -version                    Print the current version 
 + 
 +Report any bugs to bug-xorriso@gnu.org or in private to scdbackup@gmx.net .
 </code> </code>
  
-La création d'un module de politique personnalisé se fait en utilisant la commande **audit2allow**. L'administrateur de sécurité à recours à la création de modules quandet uniquement quand :+=====LAB #17 - Systèmes de Fichiers Chiffrés sous RedHat 9===== 
 + 
 +====17.1 - Créer un Système de Fichiers Chiffré avec LUKS sous RedHat 9===== 
 + 
 +===Présentation=== 
 + 
 +**LUKS** ( Linux Unified Key Setup ) permet de chiffrer l'intégralité d'un disque de telle sorte que celui-ci soit utilisable sur d'autres plates-formes et distributions de Linux (voire d'autres systèmes d'exploitation). Il supporte jusqu'à 8 mots de passeafin que plusieurs utilisateurs soient en mesure de déchiffrer le même volume sans partager leur mot de passe.
  
-  * la résolution du problème n'est pas possible en utilisant une des commandes précédemment citées, +===Mise en Place===
-  * il n'existe pas de booléen capable de régler le problème.+
  
-Pour illustrer l'utilisation de cette commande, créez un nouveau répertoire pour les documents d'apache ainsi que la page d'accueil :+Remplissez la partition /dev/sdb12 avec des données aléatoires :
  
 <code> <code>
-[root@centos7 tmp]# mkdir /www1 +[root@redhat9 ~]# shred -v --iterations=1 /dev/sdb12 
-[root@centos7 tmp]# touch /www1/index.html+shred: /dev/sdb12: pass 1/1 (random)... 
 +shred: /dev/sdb12: pass 1/1 (random)...5.7MiB/200MiB 2% 
 +shred: /dev/sdb12: pass 1/1 (random)...10MiB/200MiB 5% 
 +shred: /dev/sdb12: pass 1/1 (random)...14MiB/200MiB 7% 
 +shred: /dev/sdb12: pass 1/1 (random)...18MiB/200MiB 9% 
 +shred: /dev/sdb12: pass 1/1 (random)...23MiB/200MiB 11% 
 +shred: /dev/sdb12: pass 1/1 (random)...27MiB/200MiB 13% 
 +shred: /dev/sdb12: pass 1/1 (random)...31MiB/200MiB 15% 
 +shred: /dev/sdb12: pass 1/1 (random)...36MiB/200MiB 18% 
 +shred: /dev/sdb12: pass 1/1 (random)...41MiB/200MiB 20% 
 +shred: /dev/sdb12: pass 1/1 (random)...45MiB/200MiB 22% 
 +shred: /dev/sdb12: pass 1/1 (random)...49MiB/200MiB 24% 
 +shred: /dev/sdb12: pass 1/1 (random)...53MiB/200MiB 26% 
 +shred: /dev/sdb12: pass 1/1 (random)...57MiB/200MiB 28% 
 +shred: /dev/sdb12: pass 1/1 (random)...61MiB/200MiB 30% 
 +shred: /dev/sdb12: pass 1/1 (random)...64MiB/200MiB 32% 
 +shred: /dev/sdb12: pass 1/1 (random)...68MiB/200MiB 34% 
 +shred: /dev/sdb12: pass 1/1 (random)...73MiB/200MiB 36% 
 +shred: /dev/sdb12: pass 1/1 (random)...77MiB/200MiB 38% 
 +shred: /dev/sdb12: pass 1/1 (random)...81MiB/200MiB 40% 
 +shred: /dev/sdb12: pass 1/1 (random)...86MiB/200MiB 43% 
 +shred: /dev/sdb12: pass 1/1 (random)...90MiB/200MiB 45% 
 +shred: /dev/sdb12: pass 1/1 (random)...94MiB/200MiB 47% 
 +shred: /dev/sdb12: pass 1/1 (random)...98MiB/200MiB 49% 
 +shred: /dev/sdb12: pass 1/1 (random)...105MiB/200MiB 52% 
 +shred: /dev/sdb12: pass 1/1 (random)...108MiB/200MiB 54% 
 +shred: /dev/sdb12: pass 1/1 (random)...112MiB/200MiB 56% 
 +shred: /dev/sdb12: pass 1/1 (random)...113MiB/200MiB 56% 
 +shred: /dev/sdb12: pass 1/1 (random)...117MiB/200MiB 58% 
 +shred: /dev/sdb12: pass 1/1 (random)...121MiB/200MiB 60% 
 +shred: /dev/sdb12: pass 1/1 (random)...125MiB/200MiB 62% 
 +shred: /dev/sdb12: pass 1/1 (random)...129MiB/200MiB 64% 
 +shred: /dev/sdb12: pass 1/1 (random)...133MiB/200MiB 66% 
 +shred: /dev/sdb12: pass 1/1 (random)...137MiB/200MiB 68% 
 +shred: /dev/sdb12: pass 1/1 (random)...141MiB/200MiB 70% 
 +shred: /dev/sdb12: pass 1/1 (random)...145MiB/200MiB 72% 
 +shred: /dev/sdb12: pass 1/1 (random)...148MiB/200MiB 74% 
 +shred: /dev/sdb12: pass 1/1 (random)...152MiB/200MiB 76% 
 +shred: /dev/sdb12: pass 1/1 (random)...156MiB/200MiB 78% 
 +shred: /dev/sdb12: pass 1/1 (random)...159MiB/200MiB 79% 
 +shred: /dev/sdb12: pass 1/1 (random)...163MiB/200MiB 81% 
 +shred: /dev/sdb12: pass 1/1 (random)...167MiB/200MiB 83% 
 +shred: /dev/sdb12: pass 1/1 (random)...170MiB/200MiB 85% 
 +shred: /dev/sdb12: pass 1/1 (random)...174MiB/200MiB 87% 
 +shred: /dev/sdb12: pass 1/1 (random)...178MiB/200MiB 89% 
 +shred: /dev/sdb12: pass 1/1 (random)...182MiB/200MiB 91% 
 +shred: /dev/sdb12: pass 1/1 (random)...187MiB/200MiB 93% 
 +shred: /dev/sdb12: pass 1/1 (random)...190MiB/200MiB 95% 
 +shred: /dev/sdb12: pass 1/1 (random)...194MiB/200MiB 97% 
 +shred: /dev/sdb12: pass 1/1 (random)...198MiB/200MiB 99% 
 +shred: /dev/sdb12: pass 1/1 (random)...200MiB/200MiB 100%
 </code> </code>
  
-Éditez le fichier **/etc/httpd/conf/httpd.conf** :+<WRAP center round important 60%> 
 +**Important** : L'étape ci-dessus est très importante parce que elle permet de s'assurer qu'aucune donnée ne reste sur la partition. 
 +</WRAP>
  
-<file> +Initialisez la partition avec LUKS :
-[...] +
-#DocumentRoot "/var/www/html" +
-DocumentRoot "/www1" +
-[...] +
-</file>+
  
-Ajoutez les section **<Directory "/www">**:+<code> 
 +[root@redhat9 ~]# cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb12
  
-<file> +WARNING! 
-... +======== 
-<Directory "/var/www"> +This will overwrite data on /dev/sdb12 irrevocably.
-    AllowOverride None +
-    # Allow open access: +
-    Require all granted +
-</Directory>+
  
-<Directory "/www1"> +Are you sure? (Type 'yes' in capital letters): YES 
- Options Indexes FollowSymLinks +Enter passphrase for /dev/sdb12: fenestros123456789 
- AllowOverride None +Verify passphrase: fenestros123456789 
- Require all granted +Key slot 0 created. 
-</Directory>+Command successful. 
 +</code>
  
-# Further relax access to the default document root: +<WRAP center round important 60%
-<Directory "/var/www/html"+**Important** : La passphrase ne sera pas en claireElle l'est ici pour vous montrer un mot de passe acceptable pour LUKS
-..+</WRAP>
-</file>+
  
-Créez le fichier **/www1/index.html** :+Ouvrez la partition LUKS en lui donnant le nom **sdb12** :
  
 <code> <code>
-[root@centos7 ~]# cd ~ +[root@redhat9 ~]# cryptsetup luksOpen /dev/sdb12 sdb12 
-[root@centos7 ~]# vi /www1/index.html +Enter passphrase for /dev/sdb12: fenestros123456789
-[root@centos7 ~]# cat /www1/index.html +
-<html> +
-<title> +
-This is a test +
-</title> +
-<body> +
-www test page +
-</body> +
-</html>+
 </code> </code>
  
-Modifiez ensuite le propriétaire et le groupe du répertoire **/www1** et son contenu :+Vérifiez que le système voit la partition :
  
 <code> <code>
-[root@centos7 ~]# chown -R apache:apache /www1+[root@redhat9 ~]# ls -l /dev/mapper | grep sdb12 
 +lrwxrwxrwx. 1 root root       7 Oct 24 09:21 sdb12 -> ../dm-9
 </code> </code>
  
-Redémarrez le service httpd :+Créez maintenant un système de fichiers sur **/dev/mapper/sdb12** :
  
 <code> <code>
-[root@centos7 ~]# systemctl restart httpd.service +[root@redhat9 ~]# mkfs.xfs /dev/mapper/sdb12 
 +Filesystem should be larger than 300MB. 
 +Log size should be at least 64MB. 
 +Support for filesystems like this one is deprecated and they will not be supported in future releases. 
 +meta-data=/dev/mapper/sdb12      isize=512    agcount=4, agsize=11776 blks 
 +                               sectsz=512   attr=2, projid32bit=1 
 +                               crc=1        finobt=1, sparse=1, rmapbt=0 
 +                               reflink=1    bigtime=1 inobtcount=1 nrext64=0 
 +data                           bsize=4096   blocks=47104, imaxpct=25 
 +                               sunit=0      swidth=0 blks 
 +naming   =version 2              bsize=4096   ascii-ci=0, ftype=1 
 +log      =internal log           bsize=4096   blocks=1368, version=2 
 +                               sectsz=512   sunit=0 blks, lazy-count=1 
 +realtime =none                   extsz=4096   blocks=0, rtextents=0
 </code> </code>
  
-Consultez le site localhost en utilisant **lynx** +Montez la partition LUKS :
  
 <code> <code>
-[root@centos7 ~]# lynx localhost+[root@redhat9 ~]# mount /dev/mapper/sdb12 /mnt/sdb12
 </code> </code>
  
-Le fichier **/var/log/audit/audit.log** contient maintenant des notifications de type **AVC** :+Vérifiez la présence du montage :
  
 <code> <code>
-[root@centos7 ~]# cat /var/log/audit/audit.log | grep AVC +[root@redhat9 ~]# df -h | grep sdb12 
-type=USER_AVC msg=audit(1462020229.957:425): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='avc:  received policyload notice (seqno=2)  exe="/usr/lib/systemd/systemd" sauid=0 hostname=? addr=? terminal=?' +/dev/mapper/sdb12      179M   11M  168M   6% /mnt/sdb12
-type=AVC msg=audit(1524491216.546:616): avc:  denied  { getattr } for  pid=15389 comm="gssproxy" name="/" dev="sda2" ino=128 scontext=system_u:system_r:gssproxy_t:s0 tcontext=system_u:object_r:fs_t:s0 tclass=filesystem +
-type=AVC msg=audit(1524491220.766:622): avc:  denied  { getattr } for  pid=15459 comm="gssproxy" name="/" dev="sda2" ino=128 scontext=system_u:system_r:gssproxy_t:s0 tcontext=system_u:object_r:fs_t:s0 tclass=filesystem +
-type=AVC msg=audit(1529418883.052:818): avc:  denied  { getattr } for  pid=10071 comm="httpd" path="/www/index.html" dev="sda2" ino=35670335 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:default_t:s0 tclass=file +
-type=AVC msg=audit(1529418883.052:819): avc:  denied  { getattr } for  pid=10071 comm="httpd" path="/www/index.html" dev="sda2" ino=35670335 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:default_t:s0 tclass=file +
-type=AVC msg=audit(1529418919.091:822): avc:  denied  { getattr } for  pid=10385 comm="httpd" path="/www/index.html" dev="sda2" ino=35670335 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:default_t:s0 tclass=file +
-type=AVC msg=audit(1529418919.092:823): avc:  denied  { getattr } for  pid=10385 comm="httpd" path="/www/index.html" dev="sda2" ino=35670335 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:default_t:s0 tclass=file +
-type=AVC msg=audit(1529418954.500:826): avc:  denied  { getattr } for  pid=10669 comm="httpd" path="/www/index.html" dev="sda2" ino=35670335 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:default_t:s0 tclass=file +
-type=AVC msg=audit(1529418954.500:827): avc:  denied  { getattr } for  pid=10669 comm="httpd" path="/www/index.html" dev="sda2" ino=35670335 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:default_t:s0 tclass=file +
-type=AVC msg=audit(1529419054.949:865): avc:  denied  { getattr } for  pid=10670 comm="httpd" path="/www/index.html" dev="sda2" ino=35670335 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:default_t:s0 tclass=file +
-type=AVC msg=audit(1529419054.949:866): avc:  denied  { getattr } for  pid=10670 comm="httpd" path="/www/index.html" dev="sda2" ino=35670335 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:default_t:s0 tclass=file +
-type=USER_AVC msg=audit(1529421001.608:919): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='avc:  received policyload notice (seqno=2)  exe="/usr/lib/systemd/systemd" sauid=0 hostname=? addr=? terminal=?' +
-type=USER_AVC msg=audit(1529421602.007:946): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='avc:  received policyload notice (seqno=3)  exe="/usr/lib/systemd/systemd" sauid=0 hostname=? addr=? terminal=?' +
-type=AVC msg=audit(1529422368.058:1019): avc:  denied  { getattr } for  pid=1755 comm="httpd" path="/www1/index.html" dev="sda2" ino=53579496 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:default_t:s0 tclass=file +
-type=AVC msg=audit(1529422368.058:1020): avc:  denied  { getattr } for  pid=1755 comm="httpd" path="/www1/index.html" dev="sda2" ino=53579496 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:default_t:s0 tclass=file+
 </code> </code>
  
-A l'aide de la commande grep, il convient maintenant d'envoyer les messages d'erreurs en provenance du fichier **/var/log/audit/audit.log** sur l'entrée standard de la commande **audit2allow** afin de permettre celle-ci de créer des règles permettant l'autorisation de ce qui a été précédemment interdit par %%SELinux%% :+Editez le fichier **/etc/crypttab/** :
  
 <code> <code>
-[root@centos7 ~]# grep httpd_t /var/log/audit/audit.log | audit2allow -m httpdlocal > httpdlocal.te+[root@redhat9 ~]# vi /etc/crypttab 
 + 
 +[root@redhat9 ~]# cat /etc/crypttab 
 +sdb12 /dev/sdb12 none
 </code> </code>
  
-L'examen du fichier **httpdlocal.te** révèle la création de ces règles :+Modifiez le fichier **/etc/fstab** :
  
 <code> <code>
-[root@centos7 ~]# cat httpdlocal.te+[root@redhat9 ~]# vi /etc/fstab
  
-module httpdlocal 1.0;+[root@redhat9 ~]# cat /etc/fstab
  
-require { +# 
- type httpd_t; +# /etc/fstab 
- type default_t; +# Created by anaconda on Thu Oct 19 16:05:58 2023 
- class file getattr; +
-}+# Accessible filesystems, by reference, are maintained under '/dev/disk/'
 +# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info. 
 +
 +# After editing this file, run 'systemctl daemon-reload' to update systemd 
 +# units generated from this file. 
 +
 +/dev/mapper/rhel-root   /                       xfs     defaults        0 0 
 +UUID=6f6c5bb9-30be-4734-bc23-03fed8541616 /boot                   xfs     defaults        0 0 
 +/dev/mapper/rhel-swap   none                    swap    defaults        0 0 
 +/dev/mapper/sdb12                         /mnt/sdb12              xfs     defaults        0 0 
 +</code>
  
-#============= httpd_t ==============+Restaurer les SC par défaut de SELinux :
  
-#!!!! WARNING: 'default_t' is a base type. +<code> 
-#!!!! The file '/www/index.html' is mislabeled on your system.   +[root@redhat9 ~]# /sbin/restorecon -v -R /mnt/sdb12 
-#!!!! Fix with $ restorecon -R -v /www/index.html +Relabeled /mnt/sdb12 from system_u:object_r:unlabeled_t:s0 to system_u:object_r:mnt_t:s0
-allow httpd_t default_t:file getattr;+
 </code> </code>
  
-L'audit du fichier terminé, il faut maintenant utiliser audit2allow pour fabriquer un module de politique :+Redémarrez votre machine virtuelle :
  
 <code> <code>
-[root@centos7 ~]# grep httpd_t /var/log/audit/audit.log | audit2allow -M httpdlocal +[root@centos8 ~]# shutdown -r now 
-******************** IMPORTANT *********************** +</code>
-To make this policy package active, execute:+
  
-semodule -i httpdlocal.pp+<WRAP center round important 60%> 
 +**Important** : Lors du démarrage de la machine virtuelle, le système devrait vous demander d'entrer la passphrase **fenestros123456789** pour permettre le montage de /dev/sda12. 
 +</WRAP> 
 + 
 +===Ajouter une deuxième Passphrase=== 
 + 
 +Pour ajouter une deuxième passphrase, utilisez la commande cryptsetup avec la sous-commande **luksAddKey** : 
 + 
 +<code> 
 +[trainee@redhat9 ~]$ su - 
 +Password: fenestros 
 +[root@redhat9 ~]# cryptsetup luksAddKey /dev/sdb12 
 +Enter any existing passphrase: fenestros123456789 
 +Enter new passphrase for key slot: redhat123456789 
 +Verify passphrase: redhat123456789
 </code> </code>
  
-Chargez maintenant le module dans la politique %%SELinux%% :+<WRAP center round important 60%> 
 +**Important** : Les passphrases ne seront pas en claire. Elle le sont ici pour vous montrer des mots de passe acceptables pour LUKS. 
 +</WRAP> 
 + 
 +===Supprimer une Passphrase=== 
 + 
 +Pour supprimer une passphrase, utilisez la commande cryptsetup avec la sous-commande **luksRemoveKey** :
  
 <code> <code>
-[root@centos7 ~]# semodule -i httpdlocal.pp+[root@redhat9 ~]# cryptsetup luksRemoveKey /dev/sdb12 
 +Enter passphrase to be deleted: redhat123456789
 </code> </code>
  
-Vérifiez que le module est chargé :+===Supprimer LUKS=== 
 + 
 +Constatez le statut de LUKS :
  
 <code> <code>
-[root@centos7 ~]# semodule -l | grep httpd +[root@redhat9 ~]# umount /mnt/sdb12 
-httpdlocal 1.0+ 
 +[root@redhat9 ~]# cryptsetup status sdb12 
 +/dev/mapper/sdb12 is active. 
 +  type:    LUKS2 
 +  cipher:  aes-xts-plain64 
 +  keysize: 512 bits 
 +  key location: keyring 
 +  device:  /dev/sdb12 
 +  sector size:  512 
 +  offset:  32768 sectors 
 +  size:    376832 sectors 
 +  mode:    read/write
 </code> </code>
  
-Redémarrez le service httpd :+Avant de supprimer LUKs, il convient de supprimer la dernière passphrase :
  
 <code> <code>
-[root@centos7 ~]# systemctl restart httpd.service +[root@redhat9 ~]# cryptsetup luksRemoveKey /dev/sdb12 
 +Enter passphrase to be deleted:  
 + 
 +WARNING! 
 +======== 
 +This is the last keyslotDevice will become unusable after purging this key. 
 + 
 +Are you sure? (Type 'yes' in capital letters): YES
 </code> </code>
  
-Videz le fichier **/var/log/audit/audit.log** :+Supprimez maintenant LUKs :
  
 <code> <code>
-[root@centos7 ~]# vi /var/log/audit/audit.log+[root@redhat9 ~]# cryptsetup remove /dev/mapper/sdb12
 </code> </code>
  
-Consultez le site localhost :+Vérifiez de nouveau le statut :
  
 <code> <code>
-[root@centos7 ~]# lynx localhost+[root@redhat9 ~]# cryptsetup status sdb12 
 +/dev/mapper/sdb12 is inactive. 
 + 
 +[root@redhat9 ~]# lsblk 
 +NAME          MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS 
 +sda             8:   0   50G  0 disk   
 +├─sda1          8:1    0    1G  0 part  /boot 
 +└─sda2          8:2    0   49G  0 part   
 +  ├─rhel-root 253:0    0   44G  0 lvm   / 
 +  └─rhel-swap 253:1    0    5G  0 lvm   [SWAP] 
 +sdb             8:16     32G  0 disk   
 +├─sdb1          8:17    100M  0 part   
 +├─sdb2          8:18    100M  0 part   
 +├─sdb3          8:19    100M  0 part   
 +├─sdb4          8:20      1K  0 part   
 +├─sdb5          8:21    500M  0 part   
 +├─sdb6          8:22    200M  0 part   
 +│ └─vg0-lv1   253:   0  104M  0 lvm    
 +├─sdb7          8:23    300M  0 part   
 +│ └─vg0-lv2   253:   0  112M  0 lvm    
 +├─sdb8          8:24    500M  0 part   
 +│ └─md1         9:   0  996M  0 raid5  
 +├─sdb9          8:25    400M  0 part   
 +│ └─vg0-lv2   253:   0  112M  0 lvm    
 +├─sdb10         8:26    500M  0 part   
 +│ └─md1         9:   0  996M  0 raid5  
 +├─sdb11         8:27    500M  0 part   
 +└─sdb12         8:28    200M  0 part   
 +sdc             8:32      6G  0 disk   
 +sdd             8:48      6G  0 disk   
 +sr0            11:0    1 1024M  0 rom    
 +</code> 
 + 
 +Editez les fichiers **/etc/fstab** : 
 + 
 +<code> 
 +[root@redhat9 ~]# vi /etc/fstab 
 + 
 +[root@redhat9 ~]# cat /etc/fstab 
 + 
 +
 +# /etc/fstab 
 +# Created by anaconda on Thu Oct 19 16:05:58 2023 
 +
 +# Accessible filesystems, by reference, are maintained under '/dev/disk/'
 +# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info. 
 +
 +# After editing this file, run 'systemctl daemon-reload' to update systemd 
 +# units generated from this file. 
 +
 +/dev/mapper/rhel-root   /                       xfs     defaults        0 0 
 +UUID=6f6c5bb9-30be-4734-bc23-03fed8541616 /boot                   xfs     defaults        0 0 
 +/dev/mapper/rhel-swap   none                    swap    defaults        0 0 
 +</code> 
 + 
 +Supprimez le fichier **/etc/crypttab** : 
 + 
 +<code> 
 +[root@redhat9 ~]# rm -f /etc/crypttab 
 +</code> 
 + 
 +=====LAB #18 - Le Swap===== 
 + 
 +====18.1 - Taille du swap==== 
 + 
 +Le tableau suivant résume la taille du swap recommandée en fonction de la RAM de la machine : 
 + 
 +^ RAM ^ Taille du swap ^ Taille du Swap si Hibernation ^ 
 +| 2 Go ou moins | 2 * RAM | 3 * RAM | 
 +| 2 Go à 8 Go | Identique à la RAM | 2 * RAM | 
 +| 8 Go à 64 Go | Au moins 4 Go | 1.5 * RAM | 
 +| 64 Go et plus | Au moins 4 Go | Hibernation n'est pas recommendée | 
 + 
 +====18.2 - Partitions de swap==== 
 + 
 +Une partition de swap peut être créée sur : 
 + 
 +  * une partition du disque dur 
 +  * un RAID logiciel 
 +  * un Volume Logique 
 + 
 +====18.3 - La Commande swapon==== 
 + 
 +Pour préparer un espace de swap, il convient d'utiliser la commande **mkswap**. Pour activer une partition de swap, il convient d'utiliser la commande **swapon**. Pour consulter la liste des partitions swap, il convient d'utiliser la commande **swapon** avec l'option **-s**. 
 + 
 +<code> 
 +[root@redhat9 ~]# swapon -s 
 +Filename                                Type            Size            Used            Priority 
 +/dev/dm-1                               partition       5242876                       -2 
 +</code> 
 + 
 +<WRAP center round important 60%> 
 +**Important** : Vous noterez que dans l'exemple ci-dessus, le swap n'est pas utilisé. Notez aussi qu'il existe une notion de **priorité** pour les partions de swap. 
 +</WRAP> 
 + 
 +===Options de la Commande=== 
 + 
 +Les options de la commande swapon sont : 
 + 
 +<code> 
 +[root@redhat9 ~]# swapon --help 
 + 
 +Usage: 
 + swapon [options] [<spec>
 + 
 +Enable devices and files for paging and swapping. 
 + 
 +Options: 
 + -a, --all                enable all swaps from /etc/fstab 
 + -d, --discard[=<policy>] enable swap discards, if supported by device 
 + -e, --ifexists           silently skip devices that do not exist 
 + -f, --fixpgsz            reinitialize the swap space if necessary 
 + -o, --options <list>     comma-separated list of swap options 
 + -p, --priority <prio>    specify the priority of the swap device 
 + -s, --summary            display summary about used swap devices (DEPRECATED) 
 +     --show[=<columns>  display summary in definable table 
 +     --noheadings         don't print table heading (with --show) 
 +     --raw                use the raw output format (with --show) 
 +     --bytes              display swap size in bytes in --show output 
 + -v, --verbose            verbose mode 
 + 
 + -h, --help               display this help 
 + -V, --version            display version 
 + 
 +The <spec> parameter: 
 + -L <label>             synonym for LABEL=<label> 
 + -U <uuid>              synonym for UUID=<uuid> 
 + LABEL=<label>          specifies device by swap area label 
 + UUID=<uuid>            specifies device by swap area UUID 
 + PARTLABEL=<label>      specifies device by partition label 
 + PARTUUID=<uuid>        specifies device by partition UUID 
 + <device>               name of device to be used 
 + <file>                 name of file to be used 
 + 
 +Available discard policy types (for --discard): 
 + once    : only single-time area discards are issued 
 + pages   : freed pages are discarded before they are reused 
 +If no policy is selected, both discard types are enabled (default). 
 + 
 +Available output columns: 
 + NAME   device file or partition path 
 + TYPE   type of the device 
 + SIZE   size of the swap area 
 + USED   bytes in use 
 + PRIO   swap priority 
 + UUID   swap uuid 
 + LABEL  swap label 
 + 
 +For more details see swapon(8). 
 +</code> 
 + 
 +<WRAP center round important 60%> 
 +**Important** : L'option **-p** de la commande **swapon** permet de régler la priorité. 
 +</WRAP> 
 + 
 +====18.4 - La Commande swapoff==== 
 + 
 +Dans le cas de notre exemple, la partition de swap se trouve sur **/dev/dm-1**. Pour la désactiver, il convient de saisir la commande suivante : 
 + 
 +<code> 
 +[root@redhat9 ~]# swapoff /dev/dm-1 
 + 
 +[root@redhat9 ~]# swapon -s 
 +[root@redhat9 ~]#  
 +</code> 
 + 
 +===Options de la Commande=== 
 + 
 +<code> 
 +[root@redhat9 ~]# swapoff --help 
 + 
 +Usage: 
 + swapoff [options] [<spec>
 + 
 +Disable devices and files for paging and swapping. 
 + 
 +Options: 
 + -a, --all              disable all swaps from /proc/swaps 
 + -v, --verbose          verbose mode 
 + 
 + -h, --help             display this help 
 + -V, --version          display version 
 + 
 +The <spec> parameter: 
 + -L <label>             LABEL of device to be used 
 + -U <uuid>              UUID of device to be used 
 + LABEL=<label>          LABEL of device to be used 
 + UUID=<uuid>            UUID of device to be used 
 + <device>               name of device to be used 
 + <file>                 name of file to be used 
 + 
 +For more details see swapoff(8). 
 +</code> 
 + 
 +====18.5 - Créer un Fichier de Swap==== 
 + 
 +Sous Linux, vous pouvez aussi bien utiliser un fichier de swap qu'une partition. La mise en place de ce fichier est faite en utilisant la commande **dd**.  
 + 
 +La commande **dd** copie le fichier passé en entrée dans le fichier de sortie en limitant le nombre d'octets copiés par l'utilisation de deux options : 
 + 
 +  * **count** 
 +    * le nombre 
 +  * **bs** 
 +    * la taille du bloc à copier 
 + 
 +Dans le cas du fichier swap il convient d'utiliser le fichier spécial **/dev/zero** en tant que fichier d'entrée. Le fichier **/dev/zero** contient une valeur **null**. 
 + 
 +Pour créer votre fichier de swap de 256 MiB, appelé **swap**, saisissez la commande suivante : 
 + 
 +<code> 
 +[root@redhat9 ~]# dd if=/dev/zero of=/swap bs=1024k count=256 
 +256+0 records in 
 +256+0 records out 
 +268435456 bytes (268 MB, 256 MiB) copied, 1.45212 s, 185 MB/s 
 +</code> 
 + 
 +Pour préparer le fichier en tant qu'espace de swap, saisissez la commande suivante : 
 + 
 +<code> 
 +[root@redhat9 ~]# mkswap /swap 
 +mkswap: /swap: insecure permissions 0644, fix with: chmod 0600 /swap 
 +Setting up swapspace version 1, size = 256 MiB (268431360 bytes) 
 +no label, UUID=6bc62766-8662-478a-8556-8b17b26fc5ae 
 +</code> 
 + 
 +Pour activer le fichier avec une priorité de **1**, saisissez la commande suivante : 
 + 
 +<code> 
 +[root@redhat9 ~]# swapon -p1 /swap 
 +swapon: /swap: insecure permissions 0644, 0600 suggested. 
 + 
 +[root@redhat9 ~]# swapon /dev/dm-1 
 +</code> 
 + 
 +Pour visualiser les éspaces swap, saisissez la commande suivante : 
 + 
 +<code> 
 +[root@redhat9 ~]# swapon -s 
 +Filename                                Type            Size            Used            Priority 
 +/swap                                   file            262140          0               1 
 +/dev/dm-1                               partition       5242876                       -2 
 +</code> 
 + 
 +<WRAP center round important 60%> 
 +**Important** : Le fichier de swap ayant une priorité de 1 sera utilisé avant la partition de swap ayant une priorité de -2. 
 +</WRAP> 
 + 
 +<WRAP center round important 60%> 
 +**Important** : Pour activer le fichier swap d'une manière permanente, il convient d'ajouter une ligne au fichier **/etc/fstab**. Ne modifiez pas votre fichier **/etc/fstab** car vous allez supprimer le fichier de swap. 
 +</WRAP> 
 + 
 +Désactivez maintenant le fichier swap : 
 + 
 +<code> 
 +[root@redhat9 ~]# swapoff /swap 
 + 
 +[root@redhat9 ~]# swapon -s 
 +Filename                                Type            Size            Used            Priority 
 +/dev/dm-1                               partition       5242876                       -2
 </code> </code>
  
-Constatez que la consultation ne génère plus de messages de type **AVC** :+Supprimez maintenant le fichier de swap :
  
 <code> <code>
-[root@centos7 ~]# cat /var/log/audit/audit.log +[root@redhat9 ~]# rm /swap 
-[root@centos7 ~]# +rm: remove regular file '/swap'? y
 </code> </code>
  
 ----- -----
-<html> +Copyright © 2024 Hugh Norris.
-<div align="center"> +
-Copyright © 2021 Hugh Norris.<br><br> +
-</div> +
-</html>+
Menu