Il est temps de créer la structure complète du système de fichiers LFS.
Certains des répertoires suivants ont déjà été créés plus tôt avec des instructions explicites ou lors de l'installation de certains paquets. Ils sont répétés ici par souci d'exhaustivité.
Créez quelques répertoires dans la racine qui ne font pas partie de l'ensemble limité requis dans les chapitres précédents, à l'aide de la commande suivante :
mkdir -pv /{boot,home,mnt,opt,srv}
Créez l'ensemble de sous-répertoires requis sous la racine en exécutant les commandes suivantes :
mkdir -pv /etc/{opt,sysconfig} mkdir -pv /lib/firmware mkdir -pv /media/{floppy,cdrom} mkdir -pv /usr/{,local/}{include,src} mkdir -pv /usr/lib/locale mkdir -pv /usr/local/{bin,lib,sbin} mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man} mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo} mkdir -pv /usr/{,local/}share/man/man{1..8} mkdir -pv /var/{cache,local,log,mail,opt,spool} mkdir -pv /var/lib/{color,misc,locate} ln -sfv /run /var/run ln -sfv /run/lock /var/lock install -dv -m 0750 /root install -dv -m 1777 /tmp /var/tmp
Par défaut, les répertoires sont créés avec le mode d'autorisation
755, ce qui n'est pas souhaitable pour tous les répertoires. Dans la
commande ci-dessus, deux modifications sont effectuées : une
pour le répertoire principal de root
et une autre pour les répertoires des fichiers temporaires.
Le premier changement de mode garantit que n'importe qui ne pourra
pas entrer dans le répertoire /root
, de
façon identique à ce que ferait un utilisateur normal pour son
répertoire principal. Le deuxième changement veille à ce que tout
utilisateur puisse écrire dans les répertoires /tmp
et /var/tmp
,
mais ne puisse pas supprimer les fichiers des autres utilisateurs.
Cette dernière interdiction est due au « sticky bit »,
le bit (1) le plus haut dans le masque 1777.
L'arborescence des répertoires est basée sur le standard FHS
(Filesystem
Hierarchy Standard, hiérarchie standard du système de
fichiers, disponible sur https://refspecs.linuxfoundation.org/fhs.shtml).
Le FHS mentionne aussi l'existence de quelques répertoires comme
/usr/local/games
et /usr/share/games
. Nous créons seulement les
répertoires nécessaires. Néanmoins, n'hésitez pas à créer ces
répertoires.
La FHS ne dicte pas l'existence du répertoire /usr/lib64
et les éditeurs de LFS ont décidé de
ne pas l'utiliser. Pour que les instructions dans LFS et BLFS
fonctionnent correctement, il est nécessaire que ce répertoire
n'existe pas. De temps en temps vous devriez vérifier qu'il
n'existe pas, car il est facile de le créer accidentellement et
cela cassera probablement votre système.