4.4. Création des répertoires

Il est temps de crée une structure dans le système de fichier CLFS. Créer une arborescence de répertoires standard grace aux commandes suivantes :

mkdir -pv ${CLFS}/{bin,boot,dev,{etc/,}opt,home,lib,mnt}
mkdir -pv ${CLFS}/{proc,media/{floppy,cdrom},sbin,srv,sys}
mkdir -pv ${CLFS}/var/{lock,log,mail,run,spool}
mkdir -pv ${CLFS}/var/{opt,cache,lib/{misc,locate},local}
install -dv -m 0750 ${CLFS}/root
install -dv -m 1777 ${CLFS}{/var,}/tmp
mkdir -pv ${CLFS}/usr/{,local/}{bin,include,lib,sbin,src}
mkdir -pv ${CLFS}/usr/{,local/}share/{doc,info,locale,man}
mkdir -pv ${CLFS}/usr/{,local/}share/{misc,terminfo,zoneinfo}
mkdir -pv ${CLFS}/usr/{,local/}share/man/man{1,2,3,4,5,6,7,8}
for dir in ${CLFS}/usr{,/local}; do
  ln -sfnv share/{man,doc,info} ${dir}
done

Les répertoires sont créés, par défaut, avec le mode de permission 755, mais ce n'est pas souhaitable pour tous les répertoires. Dans les commandes ci dessus, deux modifications sont apportés — l'une pour le repertoire home de l'utilisateur root, et l'autre pour le répertoire des fichiers temporaires.

Le premier changement mode veille à ce que n'importe qui ne rentre pas dans le répertoire /root — le même mode est appliqué au répertoires home des utilisateurs normaux. Le second changement de mode permet de s'assurer que tout utilisateur peut écrire dans les répertoires /tmp et /var/tmp, mais qu'ils ne peuvent pas supprimer les fichiers appartenant à d'autres utilisateurs, ceci grâce au “sticky bit”, le plus haut bit (1) dans le mode de permission 1777.

4.4.1. Note de conformité FHS

L'arborescence de répertoires est basée sur le “Filesystem Hierarchy Standard” (FHS) (disponnible sur http://www.pathname.com/fhs/). En plus du FHS, nous créons des liens symboliques de compatibilité pour les répertoires man, doc, et info, puisque certain paquets essayent d'installer leur documentation dans /usr/<directory> ou /usr/local/<directory> à la place de /usr/share/<directory> ou /usr/local/share/<directory>. Le FHS stipule également l'existence de /usr/local/games et /usr/share/games. n'est pas précis quant à la structure du répertoire /usr/local/share, donc nous créons seulement les répertoires requis. Toutefois, n'hésitez pas à créer ces répertoires si vous préférez rester plus conforme au FHS.