Créer les répertoires

Créons maintenant la hiérarchie de répertoires sur notre système de fichiers LFS. Lancer les commandes suivantes pour créer une hiérarchie de répertoires plus ou moins standard :

mkdir -p /{bin,boot,dev/{pts,shm},etc/opt,home,lib,mnt,proc}
mkdir -p /{root,sbin,srv,tmp,usr/local,var,opt}
mkdir -p /media/{floppy,cdrom}
mkdir /usr/{bin,include,lib,sbin,share,src}
ln -s share/{man,doc,info} /usr
mkdir /usr/share/{doc,info,locale,man}
mkdir /usr/share/{misc,terminfo,zoneinfo}
mkdir /usr/share/man/man{1,2,3,4,5,6,7,8}
mkdir /usr/local/{bin,etc,include,lib,sbin,share,src}
ln -s share/{man,doc,info} /usr/local
mkdir /usr/local/share/{doc,info,locale,man}
mkdir /usr/local/share/{misc,terminfo,zoneinfo}
mkdir /usr/local/share/man/man{1,2,3,4,5,6,7,8}
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}}

Par défaut, les répertoires sont créés avec les droits 755, ce qui n'est pas souhaitable pour tous les répertoires. Nous allons réaliser deux changements : un pour le répertoire principal de root et un autre pour les répertoires des fichiers temporaires.

chmod 0750 /root
chmod 1777 /tmp /var/tmp

Le premier changement de droit nous assure que n'importe qui ne pourra pas entrer dans le répertoire /root (de façon identique à un utilisateur pour son répertoire principal). Le deuxième changement assure que tout utilisateur peut écrire dans les répertoires /tmp et /var/tmp, mais ne peut pas supprimer les fichiers des autres utilisateurs. Cette dernière interdiction est dûe au « sticky bit », le bit le plus haut dans le masque 1777.

Remarques à propos de la conformité FHS

Nous avons basé notre arborescence de répertoires sur le standard FHS (disponible sur http://www.pathname.com/fhs/). En plus de cette arborescence, ce standard stipule l'existence de /usr/local/games et /usr/share/games, mais nous ne voyons pas l'intérêt de ceux-ci pour un système de base. Néanmoins, vous êtes libres de rendre votre système compatible FHS. En ce qui concerne la structure du sous-répertoire /usr/local/share, le FHS est imprécis, donc nous créons ici les répertoires qui nous semblent nécessaires.