Différences

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

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
elearning:workbooks:centos:8:utilisateur:l101 [2020/09/07 08:02] adminelearning:workbooks:centos:8:utilisateur:l101 [2024/04/28 11:16] (Version actuelle) admin
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
  
-Version : **2020.01**+Version : **2024.01**
  
 Dernière mise-à-jour : ~~LASTMOD~~ Dernière mise-à-jour : ~~LASTMOD~~
Ligne 11: Ligne 11:
   * **LCF401 - Système de Fichiers**   * **LCF401 - Système de Fichiers**
     * Contenu du Module     * Contenu du Module
-    * Linux File Hierarchy System +    * LAB #1 - Linux File Hierarchy System 
-    * Types de Fichiers +      1.1 - Types de Fichiers 
-    * La Commande mount +      1.2 - La Commande mount 
-      * Options de la commande +      * 1.3 - La Commande umount 
-    * Le Fichier /etc/fstab +      1.4 - Le Fichier /etc/fstab
-      * Comprendre le fichier /etc/fstab+
         * Options de Montage         * Options de Montage
-    * La Commande umount +    * LAB #2 - Système de Fichiers Unix 
-      * Options de la commande +      * 2.1 - Superbloc 
-    * Système de Fichiers Unix +      * 2.2 - Inodes 
-      * Superbloc +      * 2.3 - Blocs de données 
-      * Inodes +      * 2.4 - Liens Physiques 
-      * Blocs de données +      * 2.5 - Liens Symboliques
-      * Liens Physiques +
-      * Liens Symboliques+
  
-=====Linux File Hierarchy System=====+=====LAB #1 - Linux File Hierarchy System=====
  
 Le système de fichiers de Linux est organisé autour d'une arborescence unique ayant un point de départ appelé la **racine**, représenté par le caractère **/**. En dessous de cette racine se trouvent des répertoires contenant fichiers et sous-répertoires. L'organisation des répertoires est conforme à un standard, appelé le **Linux File Hierarchy System**. Le système de fichiers de Linux est organisé autour d'une arborescence unique ayant un point de départ appelé la **racine**, représenté par le caractère **/**. En dessous de cette racine se trouvent des répertoires contenant fichiers et sous-répertoires. L'organisation des répertoires est conforme à un standard, appelé le **Linux File Hierarchy System**.
- 
-====RHEL/CentOS 6==== 
  
 <code> <code>
-[trainee@centos6 /]$ ls -l +[trainee@centos8 ~]$ cd / 
-total 98 +[trainee@centos8 /]$ ls -l 
-dr-xr-xr-x.   root root  4096  9 août  12:52 bin +total 18 
-dr-xr-xr-x.   root root  1024  7 déc.   2014 boot +lrwxrwxrwx.   root root    7 May 10  2019 bin -> usr/bin 
-drwxr-xr-x.  19 root root  3820 25 août  11:29 dev +dr-xr-xr-x.   root root 1024 May  8 08:14 boot 
-drwxr-xr-x. 119 root root 12288 25 août  11:28 etc +drwxr-xr-x.  19 root root 3020 Sep  6 07:59 dev 
-drwxr-xr-x.   3 root root  4096  3 mai    2013 home +drwxr-xr-x.  91 root root 8192 Sep  6 07:59 etc 
-dr-xr-xr-x 20 root root 12288  9 août  12:52 lib +drwxr-xr-x.   3 root root   21 May  8 07:42 home 
-drwx------.   root root 16384  3 mai    2013 lost+found +lrwxrwxrwx  1 root root    7 May 10  2019 lib -> usr/lib 
-drwxr-xr-x.   2 root root  4096  7 déc.   2014 media +lrwxrwxrwx.   root root    9 May 10  2019 lib64 -> usr/lib64 
-drwxr-xr-x.   2 root root     0 25 août  11:28 misc +drwxr-xr-x.   2 root root    6 May 10  2019 media 
-drwxr-xr-x.   3 root root  4096  5 juil. 12:22 mnt +drwxr-xr-x.   2 root root    6 May 10  2019 mnt 
-drwxr-xr-x.   2 root root     0 25 août  11:28 net +drwxr-xr-x.   2 root root    May 10  2019 opt 
-drwxr-xr-x.   root root  4096  7 déc.   2014 opt +dr-xr-xr-x. 126 root root    Sep  6 07:59 proc 
-dr-xr-xr-x. 154 root root     25 août  11:27 proc +dr-xr-x---.   2 root root  135 Sep  1 11:10 root 
-dr-xr-x---.  10 root root  4096  9 août  12:58 root +drwxr-xr-x.  29 root root  860 Sep  6 08:00 run 
-dr-xr-xr-x.   2 root root 12288  9 août  12:52 sbin +lrwxrwxrwx.   root root    8 May 10  2019 sbin -> usr/sbin 
-drwxr-xr-x.   root root     0 25 août  11:27 selinux +drwxr-xr-x.   2 root root    6 May 10  2019 srv 
-drwxr-xr-x.   2 root root  4096 23 sept.  2011 srv +dr-xr-xr-x.  13 root root    Sep  6 07:59 sys 
-drwxr-xr-x.  13 root root     25 août  11:27 sys +drwxrwxrwt.   8 root root  172 Sep  6 08:00 tmp 
-drwxrwxrwt.  16 root root  4096 25 août  11:30 tmp +drwxr-xr-x.  12 root root  144 May  8 07:38 usr 
-drwxr-xr-x.  13 root root  4096  3 mai    2013 usr +drwxr-xr-x.  21 root root 4096 May  8 08:13 var
-drwxr-xr-x.  22 root root  4096  9 août  12:50 var+
 </code> </code>
  
-  * **/bin** : est une abréviation de //**bin**ary// ou binaires. Il contient des programmes tels ls.  +  * **/bin** : est une abréviation de //**bin**ary// ou binaires. Il contient des programmes tels ls. Sous CentOS 8 il s'agit d'un lien symbolique qui pointe vers /usr/bin. 
-  * **/boot** : contient les fichiers nécessaires au démarrage du système.  +
-  * **/cgroup** : utilisé par le nouveau système de //Control Groups//. +
-  * **/dev** : contient les nœuds utilisés pour accéder à tout type de matériel tel /dev/fd0 pour le lecteur de disquette. C'est le binaire //udev// qui se charge de créer et supprimer d'une manière dynamique les nœuds. +
-  * **/etc** : contient des fichiers de configuration tels passwd pour les mots de passe et fstab qui est la liste des systèmes de fichiers à monter lors du démarrage du système.  +
-  * **/home** : contient les répertoires de chaque utilisateur sauf l’utilisateur root.  +
-  * **/lib** : contient les bibliothèques 32 bits communes utilisées par les programmes ainsi que les modules.  +
-  * **/lib64** : contient les bibliothèques 64 bits communes utilisées par les programmes ainsi que les modules. +
-  * **/lost+found** : contient des fragments de fichiers endommagés et retrouvés par la commande //fsck//. +
-  * **/media** : contient des répertoires pour chaque système de fichiers monté ( accessible au système linux ) tels floppy, cdrom etc.  +
-  * **/misc** : contient des points de montage pour chaque répertoire local monté par l'automounter. +
-  * **/mnt** : contient des répertoires pour chaque système de fichiers monté temporairement par root. +
-  * **/net** : contient des points de montage pour chaque répertoire réseau monté par l'automounter. +
-  * **/opt** : contient des applications optionnelles. +
-  * **/proc** : contient un système de fichiers virtuel qui extrait de la mémoire les informations en cours de traitement. Le contenu des fichiers est créé dynamiquement lors de la consultation. Seul root peut consulter la totalité des informations dans le répertoire /proc. +
-  * **/root** : le home de root, l’administrateur système  +
-  * **/sbin** : contient des binaires, donc programmes, pour l’administration du système local.  +
-  * **/selinux** : contient des fichiers propres à l'implémentation de SELINUX. +
-  * **/srv** : contient des données pour les **s**e**r****v**ices hébergés par le système tels ftp, bases de données, web etc. +
-  * **/sys** : contient un système de fichiers virtuel dont le rôle est de décrire le matériel pour udev. +
-  * **/tmp** : stocke des fichiers temporaires créés par des programmes.  +
-  * **/usr** : contient des commandes des utilisateurs dans /usr/bin, les HOWTO dans /usr/share/doc, les manuels dans /usr/share/man ainsi que d'autres entrées majeures. +
-  * **/var** : contient des fichiers de taille variable. +
- +
-====RHEL/CentOS 7==== +
- +
-<code> +
-[trainee@centos7 /]$ ls -l +
-total 32 +
-lrwxrwxrwx.   1 root root    7 Mar  13:41 bin -> usr/bin +
-dr-xr-xr-x.   4 root root 4096 Jun  4 15:00 boot +
-drwxr-xr-x.  19 root root 3280 Jul  7 15:55 dev +
-drwxr-xr-x. 131 root root 8192 Jul 23 17:05 etc +
-drwxr-xr-x.   4 root root   47 Jul  5 14:11 home +
-lrwxrwxrwx.   1 root root    7 Mar  8 13:41 lib -> usr/lib +
-lrwxrwxrwx.   1 root root    9 Mar  8 13:41 lib64 -> usr/lib64 +
-drwxr-xr-x.   2 root root    6 Jun 10  2014 media +
-drwxr-xr-x.   3 root root   18 Jul  5 13:57 mnt +
-drwxr-xr-x.   4 root root   47 Jun  4 09:36 opt +
-dr-xr-xr-x. 177 root root    0 Jul  7 15:53 proc +
-dr-xr-x---.   5 root root 4096 Aug 25 11:31 root +
-drwxr-xr-x.  35 root root 1100 Jul 23 15:40 run +
-lrwxrwxrwx.   1 root root    8 Mar  8 13:41 sbin -> usr/sbin +
-drwxr-xr-x.   2 root root    6 Jun 10  2014 srv +
-dr-xr-xr-x.  13 root root    0 Jul  7 15:53 sys +
-drwxrwxrwt.  25 root root 4096 Jul 23 15:40 tmp +
-drwxr-xr-x.  13 root root 4096 Mar  8 13:41 usr +
-drwxr-xr-x.  22 root root 4096 Jul  7 15:53 var +
-</code> +
- +
- +
-  * **/bin** : est une abréviation de //**bin**ary// ou binaires. Il contient des programmes tels ls. Sous RHEL/CentOS 7 il s'agit d'un lien symbolique qui pointe vers /usr/bin. +
   * **/boot** : contient les fichiers nécessaires au démarrage du système.    * **/boot** : contient les fichiers nécessaires au démarrage du système. 
   * **/dev** : contient les nœuds utilisés pour accéder à tout type de matériel tel /dev/fd0 pour le lecteur de disquette. C'est le binaire //udev// qui se charge de créer et supprimer d'une manière dynamique les nœuds.   * **/dev** : contient les nœuds utilisés pour accéder à tout type de matériel tel /dev/fd0 pour le lecteur de disquette. C'est le binaire //udev// qui se charge de créer et supprimer d'une manière dynamique les nœuds.
   * **/etc** : contient des fichiers de configuration tels passwd pour les mots de passe et fstab qui est la liste des systèmes de fichiers à monter lors du démarrage du système.    * **/etc** : contient des fichiers de configuration tels passwd pour les mots de passe et fstab qui est la liste des systèmes de fichiers à monter lors du démarrage du système. 
   * **/home** : contient les répertoires de chaque utilisateur sauf l’utilisateur root.    * **/home** : contient les répertoires de chaque utilisateur sauf l’utilisateur root. 
-  * **/lib** : contient les bibliothèques 32 bits communes utilisées par les programmes ainsi que les modules. Sous RHEL/CentOS il s'agit d'un lien symbolique qui pointe vers /usr/lib.   +  * **/lib** : contient les bibliothèques 32 bits communes utilisées par les programmes ainsi que les modules. Sous CentOS il s'agit d'un lien symbolique qui pointe vers /usr/lib.   
-  * **/lib64** : contient les bibliothèques 64 bits communes utilisées par les programmes ainsi que les modules. Sous RHEL/CentOS il s'agit d'un lien symbolique qui pointe vers /usr/lib64.  +  * **/lib64** : contient les bibliothèques 64 bits communes utilisées par les programmes ainsi que les modules. Sous CentOS il s'agit d'un lien symbolique qui pointe vers /usr/lib64. 
-  * **/lost+found** : contient des fragments de fichiers endommagés et retrouvés par la commande //fsck//.+
   * **/media** : contient des répertoires pour chaque système de fichiers monté ( accessible au système linux ) tels floppy, cdrom etc.    * **/media** : contient des répertoires pour chaque système de fichiers monté ( accessible au système linux ) tels floppy, cdrom etc. 
   * **/mnt** : contient des répertoires pour chaque système de fichiers monté temporairement par root.   * **/mnt** : contient des répertoires pour chaque système de fichiers monté temporairement par root.
Ligne 123: Ligne 65:
   * **/proc** : contient un système de fichiers virtuel qui extrait de la mémoire les informations en cours de traitement. Le contenu des fichiers est créé dynamiquement lors de la consultation. Seul root peut consulter la totalité des informations dans le répertoire /proc.   * **/proc** : contient un système de fichiers virtuel qui extrait de la mémoire les informations en cours de traitement. Le contenu des fichiers est créé dynamiquement lors de la consultation. Seul root peut consulter la totalité des informations dans le répertoire /proc.
   * **/root** : le home de root, l’administrateur système.   * **/root** : le home de root, l’administrateur système.
-  * **/run** : remplace le répertoire /var/run. Sous RHEL/CentOS 7 /var/run est un lien symbolique qui pointe vers /run. +  * **/run** : remplace le répertoire /var/run. 
-  * **/sbin** : contient des binaires, donc programmes, pour l’administration du système local.  Sous RHEL/CentOS il s'agit d'un lien symbolique qui pointe vers /usr/sbin.+  * **/sbin** : contient des binaires, donc programmes, pour l’administration du système local.  Sous CentOS il s'agit d'un lien symbolique qui pointe vers /usr/sbin.
   * **/srv** : contient des données pour les **s**e**r****v**ices hébergés par le système tels ftp, bases de données, web etc.   * **/srv** : contient des données pour les **s**e**r****v**ices hébergés par le système tels ftp, bases de données, web etc.
   * **/sys** : contient un système de fichiers virtuel dont le rôle est de décrire le matériel pour udev.   * **/sys** : contient un système de fichiers virtuel dont le rôle est de décrire le matériel pour udev.
Ligne 131: Ligne 73:
   * **/var** : contient des fichiers de taille variable.   * **/var** : contient des fichiers de taille variable.
  
-=====Types de Fichiers=====+====1.1 - Types de Fichiers====
  
 Il existe trois types majeurs de fichier sous le système Linux : Il existe trois types majeurs de fichier sous le système Linux :
Ligne 149: Ligne 91:
 Si le nom d'un fichier commence par un **.**, le fichier devient caché. Si le nom d'un fichier commence par un **.**, le fichier devient caché.
  
-=====La Commande mount=====+====1.2 - La Commande mount====
  
 Pour que Linux soit informé de la présence d’un système de fichiers, ce système doit être monté. Pour monter un système de fichiers, on utilise la commande **mount** : Pour que Linux soit informé de la présence d’un système de fichiers, ce système doit être monté. Pour monter un système de fichiers, on utilise la commande **mount** :
Ligne 156: Ligne 98:
  
 ou **/dev/<fichier_spécial>** est le périphérique à monter et **/mnt/<répertoire_cible>** est le répertoire qui servira comme «fenêtre» pour visionner le contenu du système de fichiers. Ce répertoire doit impérativement exister avant d’essayer de monter le système de fichiers. ou **/dev/<fichier_spécial>** est le périphérique à monter et **/mnt/<répertoire_cible>** est le répertoire qui servira comme «fenêtre» pour visionner le contenu du système de fichiers. Ce répertoire doit impérativement exister avant d’essayer de monter le système de fichiers.
- 
-<WRAP center round todo 60%> 
-**A faire** : Connectez-vous à votre machine virtuelle CentOS en tant que **trainee** avec le mot de passe **trainee**. Ouvrez un terminal via les menus **Applications > Outils système > Terminal**. Tapez la commande **su -** et appuyez sur la touche <key>Entrée</key>. Indiquez le mot de passe **fenestros**. Vous êtes maintenant connecté en tant que l'administrateur **root** et vous pouvez reproduire les exemples qui suivent. 
-</WRAP> 
  
 Dans le cas où la commande **mount** est utilisée sans options, le système retourne une liste de tous les systèmes de fichiers actuellement montés : Dans le cas où la commande **mount** est utilisée sans options, le système retourne une liste de tous les systèmes de fichiers actuellement montés :
  
 <code> <code>
-[root@centos6 /]# mount +[trainee@centos8 /]$ su - 
-/dev/sda2 on / type ext4 (rw) +Password: fenestros 
-proc on /proc type proc (rw) +[root@centos8 ~]# mount 
-sysfs on /sys type sysfs (rw+sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
-devpts on /dev/pts type devpts (rw,gid=5,mode=620) +
-tmpfs on /dev/shm type tmpfs (rw) +
-/dev/sda1 on /boot type ext3 (rw) +
-none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) +
-sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) +
-</code> +
- +
-<code> +
-[root@centos7 ~]# mount+
 proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
-sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel) +devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=1881944k,nr_inodes=470486,mode=755)
-devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=1449668k,nr_inodes=362417,mode=755)+
 securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
 tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
 devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
 tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755) tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
-tmpfs on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,seclabel,mode=755) +tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755) 
-cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd) +cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd) 
-pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) +pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime,seclabel) 
-cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset+bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700
-cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu+cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,devices
-cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) +cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,net_cls,net_prio
-cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices+cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,memory) 
-cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer+cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuset
-cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls+cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,pids
-cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio+cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpu,cpuacct
-cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event+cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,perf_event
-cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)+cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,blkio
 +cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,hugetlb
 +cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,freezer) 
 +cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,rdma) 
 +none on /sys/kernel/tracing type tracefs (rw,relatime,seclabel)
 configfs on /sys/kernel/config type configfs (rw,relatime) configfs on /sys/kernel/config type configfs (rw,relatime)
-/dev/sda2 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)+/dev/mapper/cl_centos8-root on / type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
 selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime) selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
-systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=32,pgrp=1,timeout=300,minproto=5,maxproto=5,direct+systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=31,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=3826)
-debugfs on /sys/kernel/debug type debugfs (rw,relatime) +
-hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)+
 mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel) mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
 +debugfs on /sys/kernel/debug type debugfs (rw,relatime,seclabel)
 +hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel,pagesize=2M)
 +fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
 +/dev/sda1 on /boot type ext4 (rw,relatime,seclabel)
 sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
-nfsd on /proc/fs/nfsd type nfsd (rw,relatime) +tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=382500k,mode=700,uid=1000,gid=1000
-/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota+tmpfs on /run/user/42 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=382500k,mode=700,uid=42,gid=42)
-fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)+
 gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000) gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
 +</code>
 +
 +Cette information est stockée dans le fichier **/etc/mtab** :
 +
 +<code>
 +[root@centos8 ~]# cat /etc/mtab
 +sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
 +proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
 +devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=1881944k,nr_inodes=470486,mode=755 0 0
 +securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
 +tmpfs /dev/shm tmpfs rw,seclabel,nosuid,nodev 0 0
 +devpts /dev/pts devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
 +tmpfs /run tmpfs rw,seclabel,nosuid,nodev,mode=755 0 0
 +tmpfs /sys/fs/cgroup tmpfs ro,seclabel,nosuid,nodev,noexec,mode=755 0 0
 +cgroup /sys/fs/cgroup/systemd cgroup rw,seclabel,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
 +pstore /sys/fs/pstore pstore rw,seclabel,nosuid,nodev,noexec,relatime 0 0
 +bpf /sys/fs/bpf bpf rw,nosuid,nodev,noexec,relatime,mode=700 0 0
 +cgroup /sys/fs/cgroup/devices cgroup rw,seclabel,nosuid,nodev,noexec,relatime,devices 0 0
 +cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,seclabel,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0
 +cgroup /sys/fs/cgroup/memory cgroup rw,seclabel,nosuid,nodev,noexec,relatime,memory 0 0
 +cgroup /sys/fs/cgroup/cpuset cgroup rw,seclabel,nosuid,nodev,noexec,relatime,cpuset 0 0
 +cgroup /sys/fs/cgroup/pids cgroup rw,seclabel,nosuid,nodev,noexec,relatime,pids 0 0
 +cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,seclabel,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0
 +cgroup /sys/fs/cgroup/perf_event cgroup rw,seclabel,nosuid,nodev,noexec,relatime,perf_event 0 0
 +cgroup /sys/fs/cgroup/blkio cgroup rw,seclabel,nosuid,nodev,noexec,relatime,blkio 0 0
 +cgroup /sys/fs/cgroup/hugetlb cgroup rw,seclabel,nosuid,nodev,noexec,relatime,hugetlb 0 0
 +cgroup /sys/fs/cgroup/freezer cgroup rw,seclabel,nosuid,nodev,noexec,relatime,freezer 0 0
 +cgroup /sys/fs/cgroup/rdma cgroup rw,seclabel,nosuid,nodev,noexec,relatime,rdma 0 0
 +none /sys/kernel/tracing tracefs rw,seclabel,relatime 0 0
 +configfs /sys/kernel/config configfs rw,relatime 0 0
 +/dev/mapper/cl_centos8-root / xfs rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota 0 0
 +selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
 +systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=31,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=3826 0 0
 +mqueue /dev/mqueue mqueue rw,seclabel,relatime 0 0
 +debugfs /sys/kernel/debug debugfs rw,seclabel,relatime 0 0
 +hugetlbfs /dev/hugepages hugetlbfs rw,seclabel,relatime,pagesize=2M 0 0
 +fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0
 +/dev/sda1 /boot ext4 rw,seclabel,relatime 0 0
 +sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
 +tmpfs /run/user/1000 tmpfs rw,seclabel,nosuid,nodev,relatime,size=382500k,mode=700,uid=1000,gid=1000 0 0
 +tmpfs /run/user/42 tmpfs rw,seclabel,nosuid,nodev,relatime,size=382500k,mode=700,uid=42,gid=42 0 0
 +gvfsd-fuse /run/user/1000/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=1000,group_id=1000 0 0
 </code> </code>
  
 <WRAP center round important 60%> <WRAP center round important 60%>
-**Important** : Notez que le système de fichiers par défaut est différent selon la version de RHEL. Sous RHEL 6 c'est l'**ext4** et sous RHEL 7 c'est le **xfs**. La comparaison des systèmes de fichiers Linux sera abordée dans le cours **Gestion des Disques et des Systèmes de Fichiers**.+**Important** : Notez que le système de fichiers de /dev/sda1 est **ext4** tandis que que le système de fichiers de /dev/mapper/cl_centos8-root est **xfs**. La comparaison des systèmes de fichiers Linux est abordée dans le module **LCF504 - Gestion des Disquesdes Systèmes de Fichiers et du Swap**.
 </WRAP> </WRAP>
  
-====Options de la commande====+====1.3 - La Commande umount=====
  
-Les options de la commande **mount** sont :+Pour démonter un système de fichiers, on utilise la commande umount :
  
-<code+  # umount /mnt/<répertoire_cible
-[trainee@centos ~]$ mount --help + 
-Utilisation : mount -V                 : afficher la version +ou 
-       mount -h                 : afficher cette aide + 
-       mount                    : lister les systèmes de fichiers montés +  # umount /dev/cdrom
-       mount -l                 : idem, incluant les étiquettes de volumes +
-Cela pour la partie informative. Suit ce qui porte sur le montage. +
-La commande est « mount [-t type-sys-fichier]  quoi  où ». +
-Les détails se trouvant dans /etc/fstab peuvent être omis. +
-       mount -a [-t|-O] ...     : monter tout ce qui est listé dans /etc/fstab +
-       mount périphérique    : monter le périphérique à l'endroit connu +
-       mount répertoire         : monter le périphérique connu ici +
-       mount -t type périph rép : commande de montage ordinaire +
-Noter que celle-ci ne monte pas réellement un périphérique, elle monte +
-un système de fichiers (de type donné) trouvé sur le périphérique. +
-Elle peut aussi monter une arborescence de rép. déjà visible ailleurs : +
-       mount --bind ancien-rép nouveau-rép +
-ou déplacer une sous-arborescence: +
-       mount --move ancien-rép nouveau-rép +
-Elle peut changer le type de montage d'un rép. : +
-       mount --make-shared rép. +
-       mount --make-slave rép. +
-       mount --make-private rép. +
-       mount --make-unbindable rép. +
-Elle peut changer le type de tous les points de montage d'une +
-sous-arborecence contenue dans le rép.: +
-       mount --make-rshared rép. +
-       mount --make-rslave rép. +
-       mount --make-rprivate rép. +
-       mount --make-runbindable rép. +
-Un périph. peut être nommé, comme /dev/hda1 ou /dev/cdrom, ou +
-repéré par l'étiquette, avec  -L étiqu.  ou par UUID, avec -U uuid . +
-Autres options: [-nfFrsvw] [-o options] [-p descr_fic_mots_passe]. +
-Pour plus de détails, tapez "man 8 mount"+
-</code>+
  
-=====Le Fichier /etc/fstab=====+====1.4 - Le Fichier /etc/fstab====
  
 Dans le cas où la commande **mount** est utilisée avec l’option **–a**, tous les systèmes de fichiers mentionnés dans un fichier spécial dénommé **/etc/fstab** seront montés en même temps : Dans le cas où la commande **mount** est utilisée avec l’option **–a**, tous les systèmes de fichiers mentionnés dans un fichier spécial dénommé **/etc/fstab** seront montés en même temps :
  
 <code> <code>
-[root@centos6 ~]# cat /etc/fstab+[root@centos8 ~]# cat /etc/fstab
  
 # #
 # /etc/fstab # /etc/fstab
-# Created by anaconda on Fri May  3 13:33:42 2013+# Created by anaconda on Wed Jun 16 06:21:32 2021
 # #
-# Accessible filesystems, by reference, are maintained under '/dev/disk' +# 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+# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
 # #
-UUID=b9f29672-c84e-4d3b-b132-189758a084eb /                       ext4    defaults        1 1 +# After editing this file, run 'systemctl daemon-reload' to update systemd 
-UUID=01baf03d-df0d-479b-b3e4-81ce63b8dec3 /boot                   ext4    defaults        1 2 +units generated from this file.
-UUID=2646a33a-65f3-4501-9ced-9459435fd774 swap                    swap    defaults        0 0 +
-tmpfs                   /dev/shm                tmpfs   defaults        0 0 +
-devpts                  /dev/pts                devpts  gid=5,mode=620  0 0 +
-sysfs                   /sys                    sysfs   defaults        0 0 +
-proc                    /proc                   proc    defaults        0 0 +
-</code> +
- +
-<code> +
-[root@centos7 ~]cat /etc/fstab +
 # #
-# /etc/fstab +/dev/mapper/cl_centos8-root /                       xfs     defaults        0 0 
-# Created by anaconda on Sun Mar  8 12:38:10 2015 +UUID=1c04981e-5317-4b73-9695-3ce25246835d /boot                   ext4    defaults        1 2 
-+/dev/mapper/cl_centos8-swap swap                    swap    defaults        0 0
-# 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 +
-+
-UUID=b35de665-5ec8-4226-a533-58a1b567ac91 /                       xfs     defaults        1 1 +
-UUID=e8d3bd48-1386-411c-9675-41c3f8f1a309 /boot                   xfs     defaults        1 2 +
-UUID=11a4d11d-81e4-46a7-82e0-7796cd597dc9 swap                    swap    defaults        0 0+
 </code> </code>
- 
-====Comprendre le fichier /etc/fstab==== 
  
 Chaque ligne dans ce fichier contient 6 champs : Chaque ligne dans ce fichier contient 6 champs :
  
 ^ Champ 1 ^ Champ 2 ^ Champ 3 ^ Champ 4 ^ Champ 5 ^ Champ 6 ^ ^ Champ 1 ^ Champ 2 ^ Champ 3 ^ Champ 4 ^ Champ 5 ^ Champ 6 ^
-| Fichier de bloc spécial ou UUID ou système de fichiers virtuel  | Point de montage  | Type de système de fichiers  | Options séparées par des virgules  | Utilisé par //dump// ( 1 = à dumper, 0 ou vide = à ignorer )  | L'ordre de vérification par //fsck// des systèmes de fichiers au moment du démarrage  |+| Fichier de bloc spécial ou UUID ou système de fichiers virtuel ou une étiquette  | Point de montage  | Type de système de fichiers  | Options séparées par des virgules  | Utilisé par //dump// ( 1 = à dumper, 0 ou vide = à ignorer )  | L'ordre de vérification par //fsck// des systèmes de fichiers au moment du démarrage  |
  
 L'**UUID** ( //Universally Unique Identifier// ) est une chaîne d'une longueur de 128 bits. Les UUID sont créés automatiquement et d'une manière aléatoire lors de la création du filesystem sur la partition. Ils peuvent être modifiés par l'administrateur. L'**UUID** ( //Universally Unique Identifier// ) est une chaîne d'une longueur de 128 bits. Les UUID sont créés automatiquement et d'une manière aléatoire lors de la création du filesystem sur la partition. Ils peuvent être modifiés par l'administrateur.
Ligne 325: Ligne 252:
 | file_mode=valeur | Formats non-Linux | Spécifie les droits d'usage des fichiers | umask actuel | | file_mode=valeur | Formats non-Linux | Spécifie les droits d'usage des fichiers | umask actuel |
  
-=====La Commande umount===== +=====LAB #- Système de Fichiers Unix=====
- +
-Pour démonter un système de fichiers, on utilise la commande umount : +
- +
-  umount /mnt/<répertoire_cible> +
- +
-ou +
- +
-  # umount /dev/cdrom +
- +
-====Options de la commande==== +
- +
-Les options de la commande **umount** sont : +
- +
-<code> +
-[trainee@centos ~]$ umount --help +
-Utilisation : umount -h | -V +
-       umount -a [-d] [-f] [-r] [-n] [-v] [-t typevfs] [-O opts] +
-       umount [-d] [-f] [-r] [-n] [-v] spécial | noeud... +
-</code> +
- +
-=====Système de Fichiers Unix=====+
  
 Chaque partition sous un système Unix peut héberger une des structures suivantes : Chaque partition sous un système Unix peut héberger une des structures suivantes :
Ligne 355: Ligne 261:
   * blocs d'indirection   * blocs d'indirection
  
- +====2.1 - Superbloc====
-====Superbloc====+
  
 Le superbloc contient : Le superbloc contient :
Ligne 374: Ligne 279:
  
 <code> <code>
-[root@centos6 ~]# dumpe2fs /dev/sda1 | grep -i superbloc +[root@centos8 ~]# dumpe2fs /dev/sda1 | grep -i superbloc 
-dumpe2fs 1.41.12 (17-May-2010+dumpe2fs 1.44.(5-Mar-2019
- superbloc Primaire à 1, Descripteurs de groupes à 2-2 +  Primary superblock at 1, Group descriptors at 2-4 
- superbloc Secours à 8193, Descripteurs de groupes à 8194-8194 +  Backup superblock at 8193, Group descriptors at 8194-8196 
- superbloc Secours à 24577, Descripteurs de groupes à 24578-24578 +  Backup superblock at 24577, Group descriptors at 24578-24580 
- superbloc Secours à 40961, Descripteurs de groupes à 40962-40962 +  Backup superblock at 40961, Group descriptors at 40962-40964 
- superbloc Secours à 57345, Descripteurs de groupes à 57346-57346 +  Backup superblock at 57345, Group descriptors at 57346-57348 
- superbloc Secours à 73729, Descripteurs de groupes à 73730-73730+  Backup superblock at 73729, Group descriptors at 73730-73732 
 +  Backup superblock at 204801, Group descriptors at 204802-204804 
 +  Backup superblock at 221185, Group descriptors at 221186-221188
 </code> </code>
  
-====Inodes====+====2.2 - Inodes====
  
 Chaque fichier est représenté par un **inode**. L'inode contient : Chaque fichier est représenté par un **inode**. L'inode contient :
Ligne 406: Ligne 313:
  
 <code> <code>
-[root@centos6 ~]# ls -ld /dev/console /dev/ram0 /etc /etc/passwd +[root@centos8 ~]# ls -ld /dev/console /dev/sda1 /etc /etc/passwd 
-crw-------   1 root root  5, 1 20 oct.  15:52 /dev/console +crw-------.  1 root root 5, 1 Sep  6 07:59 /dev/console 
-brw-rw----   1 root disk  1, 0 20 oct.  15:52 /dev/ram0 +brw-rw----.  1 root disk 8, 1 Sep  6 07:59 /dev/sda1 
-drwxr-xr-x 117 root root 12288 20 oct.  15:53 /etc +drwxr-xr-x. 91 root root 8192 Sep  6 07:59 /etc 
--rw-r--r--   1 root root  1890  3 oct.  18:09 /etc/passwd +-rw-r--r--.  1 root root 1383 May  8 07:42 /etc/passwd
-</code> +
- +
-<code> +
-[root@centos7 ~]# ls -ld /dev/console /dev/ram0 /etc /etc/passwd +
-ls: cannot access /dev/ram0: No such file or directory +
-crw-------.   1 root root 5, 1 Jul  7 15:54 /dev/console +
-drwxr-xr-x. 131 root root 8192 Aug 25 14:27 /etc +
--rw-r--r--.   1 root root 2103 Jul  5 14:11 /etc/passwd+
 </code> </code>
  
Ligne 434: Ligne 333:
  
 <code> <code>
-[root@centos6 ~]# ls -ldi /dev/console /dev/ram0 /etc /etc/passwd +[root@centos8 ~]# ls -ldi /dev/console /dev/sda1 /etc /etc/passwd 
- 5153 crw-------   1 root root  5, 1 20 oct.  15:52 /dev/console +   8816 crw-------.  1 root root 5, 1 Sep  6 07:59 /dev/console 
- 7377 brw-rw----   1 root disk  1, 0 20 oct.  15:52 /dev/ram0 +  12701 brw-rw----.  1 root disk 8, 1 Sep  6 07:59 /dev/sda1 
-   15 drwxr-xr-x 117 root root 12288 20 oct.  15:53 /etc +8388737 drwxr-xr-x. 91 root root 8192 Sep  6 07:59 /etc 
-13564 -rw-r--r--   1 root root  1890  3 oct.  18:09 /etc/passwd +8893162 -rw-r--r--.  1 root root 1383 May  8 07:42 /etc/passwd
-</code> +
- +
-<code> +
-root@centos7 ~]# ls -ldi /dev/console /dev/ram0 /etc /etc/passwd +
-ls: cannot access /dev/ram0: No such file or directory +
-    1043 crw-------.   1 root root 5, 1 Jul  7 15:54 /dev/console +
- 8388737 drwxr-xr-x. 131 root root 8192 Aug 25 14:27 /etc +
-11114576 -rw-r--r--.   1 root root 2103 Jul  5 14:11 /etc/passwd+
 </code> </code>
  
-====Blocs de données====+====2.3 - Blocs de données====
  
 Les données sont stockées dans des blocs de données. Dans le cas d'un répertoire, le bloc de données contient une table qui référence les inodes et les noms des fichiers dans le répertoire. Cette table s'appelle une **table catalogue**. Les données sont stockées dans des blocs de données. Dans le cas d'un répertoire, le bloc de données contient une table qui référence les inodes et les noms des fichiers dans le répertoire. Cette table s'appelle une **table catalogue**.
Ligne 455: Ligne 346:
 Le nom d'un fichier n'est pas stocké dans l'inode mais dans une **table catalogue**. Cette particularité nous permet de donner deux noms différents au même fichier. Pour ajouter un nouveau nom à un fichier, il convient de créer un **lien physique**. Le nom d'un fichier n'est pas stocké dans l'inode mais dans une **table catalogue**. Cette particularité nous permet de donner deux noms différents au même fichier. Pour ajouter un nouveau nom à un fichier, il convient de créer un **lien physique**.
  
-====Liens Physiques====+====2.4 - Liens Physiques====
  
 Un lien physique se crée en utilisant la commande suivante : Un lien physique se crée en utilisant la commande suivante :
Ligne 464: Ligne 355:
  
 <code> <code>
-[root@centos7 ~]# cd /tmp; mkdir inode; cd inode; touch fichier1; ls -ali +[root@centos8 ~]# cd /tmp; mkdir inode; cd inode; touch fichier1; ls -ali 
-total 4 +total 0 
-27689296 drwxr-xr-x.  2 root root   21 Oct 15 15:23 + 9199611 drwxr-xr-x. 2 root root  22 Sep  6 08:31 
-25165953 drwxrwxrwt. 23 root root 4096 Oct 15 15:23 .. +16800396 drwxrwxrwt. root root 185 Sep  6 08:31 .. 
-27689297 -rw-r--r--.  1 root root    Oct 15 15:23 fichier1+ 8398272 -rw-r--r--. 1 root root   Sep  6 08:31 fichier1
 </code> </code>
  
 Notez bien le numéro de l'inode du fichier **fichier1**. Notez aussi que le numéro dans le troisième champs de la ligne de fichier1 a la valeur **1** : Notez bien le numéro de l'inode du fichier **fichier1**. Notez aussi que le numéro dans le troisième champs de la ligne de fichier1 a la valeur **1** :
  
-27689297 -rw-r--r--.  1 root root    Oct 15 15:23 fichier1+8398272 -rw-r--r--. 1 root root   Sep  6 08:31 fichier1
  
 Créez maintenant un lien physique : Créez maintenant un lien physique :
  
 <code> <code>
-[root@centos7 inode]# ln fichier1 fichier2 +[root@centos8 inode]# ln fichier1 fichier2 
-[root@centos7 inode]# ls -ali +[root@centos8 inode]# ls -ali 
-total 4 +total 0 
-27689296 drwxr-xr-x.  2 root root   36 Oct 15 15:24 + 9199611 drwxr-xr-x. 2 root root  38 Sep  6 08:32 
-25165953 drwxrwxrwt. 23 root root 4096 Oct 15 15:23 .. +16800396 drwxrwxrwt. root root 185 Sep  6 08:31 .. 
-27689297 -rw-r--r--.  2 root root    Oct 15 15:23 fichier1 + 8398272 -rw-r--r--. 2 root root   Sep  6 08:31 fichier1 
-27689297 -rw-r--r--.  2 root root    Oct 15 15:23 fichier2+ 8398272 -rw-r--r--. 2 root root   Sep  6 08:31 fichier2
 </code> </code>
  
 Notez les deux lignes suivantes : Notez les deux lignes suivantes :
  
-27689297 -rw-r--r--.  2 root root    Oct 15 15:23 fichier1\\ + 8398272 -rw-r--r--. 2 root root   Sep  6 08:31 fichier1\\ 
-27689297 -rw-r--r--.  2 root root    Oct 15 15:23 fichier2+ 8398272 -rw-r--r--. 2 root root   Sep  6 08:31 fichier2
  
 Les deux fichiers, fichier1 et fichier2, sont référencés par le même inode. Le nombre de liens est donc augmenté de 1 (le numéro dans le troisième champs). Les deux fichiers, fichier1 et fichier2, sont référencés par le même inode. Le nombre de liens est donc augmenté de 1 (le numéro dans le troisième champs).
Ligne 498: Ligne 389:
 </WRAP> </WRAP>
  
-====Liens Symboliques====+====2.5 - Liens Symboliques====
  
 Un lien symbolique est un **raccourci** vers un autre fichier ou répertoire. Un lien symbolique se crée en utilisant la commande suivante : Un lien symbolique est un **raccourci** vers un autre fichier ou répertoire. Un lien symbolique se crée en utilisant la commande suivante :
Ligne 505: Ligne 396:
  
 Pour illustrer ce point, tapez la ligne de commande suivante : Pour illustrer ce point, tapez la ligne de commande suivante :
- 
-  # ln -s fichier1 fichier3 [Entrée] 
- 
-Vous obtiendrez un résultat similaire à celui-ci : 
  
 <code> <code>
-[root@centos7 inode]# ln -s fichier1 fichier3 +[root@centos8 inode]# ln -s fichier1 fichier3 
-[root@centos7 inode]# ls -ali +[root@centos8 inode]# ls -ali 
-total 4 +total 0 
-27689296 drwxr-xr-x.  2 root root   51 Oct 15 15:25 + 9199611 drwxr-xr-x. 2 root root  54 Sep  6 08:34 
-25165953 drwxrwxrwt. 23 root root 4096 Oct 15 15:23 .. +16800396 drwxrwxrwt. root root 185 Sep  6 08:31 .. 
-27689297 -rw-r--r--.  2 root root    Oct 15 15:23 fichier1 + 8398272 -rw-r--r--. 2 root root   Sep  6 08:31 fichier1 
-27689297 -rw-r--r--.  2 root root    Oct 15 15:23 fichier2 + 8398272 -rw-r--r--. 2 root root   Sep  6 08:31 fichier2 
-27689298 lrwxrwxrwx.  1 root root    Oct 15 15:25 fichier3 -> fichier1+ 8398273 lrwxrwxrwx. 1 root root   8 Sep  6 08:34 fichier3 -> fichier1
 </code> </code>
  
Ligne 528: Ligne 415:
  
 ----- -----
-<html> +Copyright © 2024 Hugh Norris.
-<div align="center"> +
-Copyright © 2020 Hugh Norris. +
-</html>+
Menu