Creación de los directorios

Ahora vamos a crear una estructura en nuestro sistema de ficheros LFS. Crearemos un árbol de directorios. Usando los siguientes comandos se creará un árbol más o menos estándar:

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 /usr/lib/locale &&
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

Los directorios se crean, por defecto, con los permisos 755, pero esto no es deseable para todos los directorios. Haremos dos cambios: uno para el directorio personal de root, y otro en los directorios de los ficheros temporales.

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

El primer cambio nos asegura que no todo el mundo pueda entrar en el directorio /root -- lo mismo que debería hacer un usuario normal con su directorio personal. El segundo cambio nos asegura que cualquier usuario pueda escribir en los directorios /tmp y /var/tmp, pero no pueda borrar los ficheros de otros usuarios. Esto último lo prohíbe el llamado "bit pegajoso" (sticky bit) - el bit más alto de la máscara de permisos 1777.

Nota de conformidad con FHS

Basamos nuestro árbol de directorios en el estándar FHS (disponible en http://www.pathname.com/fhs/). Además del árbol arriba creado, este estándar estipula la existencia de /usr/local/games y /usr/share/games, pero no nos gustan para un sistema base. Sin embargo, eres libre de hacer que tu sistema cumpla el FHS. Como sobre la estructura del subdirectorio /usr/local/share el FHS no hace precisiones, creamos aquí los directorios que pensamos que son necesarios.