Création des répertoires

Créons maintenant la hiérarchie de répertoires sur la partition de LFS, basé sur le standard FHS qui peut être trouvé sur http://www.pathname.com/fhs/. Lancer les commandes suivantes pour créer la hiérarchie par défaut des répertoires:

mkdir -p /{bin,boot,dev/pts,etc/opt,home,lib,mnt,proc} &&
mkdir -p /{root,sbin,tmp,usr/local,var,opt} &&
for dirname in /usr /usr/local
    do
    mkdir $dirname/{bin,etc,include,lib,sbin,share,src}
    ln -s share/{man,doc,info} $dirname
    mkdir $dirname/share/{dict,doc,info,locale,man}
    mkdir $dirname/share/{nls,misc,terminfo,zoneinfo}
    mkdir $dirname/share/man/man{1,2,3,4,5,6,7,8}
done &&
mkdir /var/{lock,log,mail,run,spool} &&
mkdir -p /var/{tmp,opt,cache,lib/misc,local} &&
mkdir /opt/{bin,doc,include,info} &&
mkdir -p /opt/{lib,man/man{1,2,3,4,5,6,7,8}} &&
ln -s ../var/tmp /usr

Normalement, les répertoires sont créés avec le mode de permission 755, ce qui n'est pas souhaité pour tous les répertoires. La première modification concerne le répertoire $LFS/root avec une permission 750. Ainsi, personne ne pourra entrer dans le répertoire /root (de façon identique à un utilisateur pour son répertoire /home/nomutilisateur). Le deuxième changement concerne les répertoires tmp avec un mode 1777. De cette façon, tout utilisateur peut écrire des données dans /tmp et /var/tmp, mais ne peut pas supprimer des fichiers d'autres utilisateurs (ceci grâce au "sticky bit" -- bit 1 du masque 1777).

cd $LFS &&
chmod 0750 root &&
chmod 1777 tmp var/tmp

Maintenant que les répertoires sont créés, copiez les fichiers sources qui ont été téléchargés dans le chapitre 3 sur un sous-répertoire de $LFS/usr/src (vous devrez créer ce répertoire vous-même).

Notes de conformité FHS

Le FHS stipule que le répertoire /usr/local doit contenir les sous-répertoires bin, games, include, lib, man, sbin et share. Vous pouvez modifier votre répertoire /usr/local vous-même si vous souhaitez que votre système soit en conformité avec FHS.

De la même manière, le standard indique qu'il doit exister un répertoire /usr/share/games, ce dont nous ne voulons pas pour un système de base. Mais n'hésitez pas à rendre votre système conforme à FHS si vous le souhaitez. Le FHS n'est pas très précis sur la structure des sous-répertoires de /usr/local/share, donc nous avons pris la liberté de créer les répertoires qui nous semblaient nécessaires.