2.6. Définition de la variable $LFS et du Umask

Tout au long de ce livre, la variable d'environnement LFS est mentionnée à plusieurs reprises. Assurez-vous de toujours définir cette variable pendant le processus de construction de LFS. Cette variable doit être associée au nom du répertoire où vous construirez votre système LFS  : nous utiliserons /mnt/lfs comme exemple mais le choix du répertoire vous appartient. Si vous construisez LFS sur une partition séparée, le répertoire défini sera le point de montage de la partition. Choisissez un répertoire et définissez la variable avec la commande suivante :

export LFS=/mnt/lfs

La définition de cette variable constitue un avantage dans des commandes telles que mkdir -v $LFS/tools que l'on peut écrire telle quelle. Le shell remplacera automatiquement « $LFS » par « /mnt/lfs » (ou par le répertoire défini dans la variable) quand il traitera la ligne de commande.

Maintenant, configurez le masque de création de fichier (umask) à 022 si la distribution hôte utilise une valeur par défaut différente :

umask 022

Configurer l'umask à 022 s'assure que les fichiers et les répertoires nouvellement créés ne sont inscriptibles que pour leur propriétaire, mais restent lisibles et trouvables (seulement pour les répertoires) par n'importe qui (en supposant que les modes par défaut sont utilisés par l'appel système open(2), les nouveau fichiers obtiendront le mode de permission 644 et les répertoires le mode 755). Une valeur par défaut trop permissive peut laisser des trous de sécurité dans le système LFS, et une valeur par défaut trop restrictive peut causer des problèmes étranges lors de la construction ou de l'utilisation du système LFS.

[Attention]

Attention

N'oubliez pas de vérifier que la variable LFS est définie et que l'umask est bien 022 à chaque fois que vous quittez et revenez dans l'environnement de travail (lorsque vous exécutez, par exemple, su en root ou un autre utilisateur). Vérifiez que la variable LFS est définie correctement avec la commande suivante :

echo $LFS

Assurez-vous que la sortie affiche le chemin du répertoire dans lequel vous construisez votre système LFS, qui est /mnt/lfs si vous avez suivi l'exemple fourni.

Vérifiez que l'umask est configuré correctement avec :

umask

La sortie peut être 0022 ou 022 (le nombre de zéros initiaux dépend de la distribution hôte).

Si la sortie d'une de ces deux commandes est incorrecte, utilisez la commande donnée plus haut pour configurer $LFS au bon répertoire et configurer l'umask à 022.

[Note]

Note

Une manière de vous assurer que la variable LFS est l'umask sont toujours définis correctement est d'éditer le fichier .bash_profile à la fois dans votre répertoire personnel et dans le fichier /root/.bash_profile et d'y saisir les commandes export et umask mentionnées plus haut. De plus, pour tous les utilisateurs ayant besoin de la variable LFS, le shell indiqué dans le fichier /etc/passwd doit être « bash » afin de s'assurer que le fichier .bash_profile soit inclus dans le processus de connexion.

Une autre chose à prendre en compte est la méthode que vous utilisez pour vous connecter au système hôte. Si vous vous connectez via un gestionnaire d'affichage graphique, le fichier .bash_profile de l'utilisateur n'est normalement pas utilisé lorsque le gestionnaire lance un terminal virtuel. Dans ce cas, ajoutez les commandes au fichier .bashrc à la fois pour l'utilisateur et pour root. En plus, certaines distributions ont des instructions qui empêchent le chargement de .bashrc dans une invocation non interactive de bash. Assurez-vous d'ajouter les commandes avant le test pour l'utilisation non interactive si c'est le cas.