It is time to create some structure in the CLFS file system. Create a standard directory tree by issuing the following commands:
mkdir -pv /{bin,boot,dev,{etc/,}opt,home,lib,mnt} mkdir -pv /{proc,media/{floppy,cdrom},sbin,srv,sys} mkdir -pv /var/{lock,log,mail,run,spool} mkdir -pv /var/{opt,cache,lib/{misc,locate},local} install -dv -m 0750 /root install -dv -m 1777 {/var,}/tmp mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src} mkdir -pv /usr/{,local/}share/{doc,info,locale,man} mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo} mkdir -pv /usr/{,local/}share/man/man{1..8} for dir in /usr{,/local}; do ln -sv share/{man,doc,info} $dir done
These entries are needed for the RaQ2 bootloader. Only use these if you are utilizing the Colo bootloader:
cd /boot ln -svf . boot
Directories are, by default, created with permission mode 755,
but this is not desirable for all directories. In the commands above,
two changes are made—one to the home directory of user
root
, and another to the
directories for temporary files.
The first mode change ensures that not just anybody can enter
the /root
directory—the
same as a normal user would do with his or her home directory. The
second mode change makes sure that any user can write to the
/tmp
and
/var/tmp
directories, but
cannot remove another user's files from them. The latter is prohibited
by the so-called “sticky bit,” the highest bit (1) in the
1777 bit mask.
The directory tree is based on the Filesystem Hierarchy Standard
(FHS) (available at http://www.pathname.com/fhs/). In
addition to the tree created above, this standard stipulates the
existence of /usr/local/games
and /usr/share/games
. The FHS
is not precise as to the structure of the /usr/local/share
subdirectory, so we
create only the directories that are needed. However, feel free to
create these directories if you prefer to conform more strictly to
the FHS.