<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> <sect1 id="ch-system-creatingdirs"> <?dbhtml filename="creatingdirs.html"?> <title>Creating Directories</title> <para>It is time to create some structure in the LFS file system. Create a standard directory tree by issuing the following commands:</para> <screen arch="default"><userinput>mkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib/firmware,mnt,opt} mkdir -pv /{media/{floppy,cdrom},sbin,srv,var} install -dv -m 0750 /root install -dv -m 1777 /tmp /var/tmp mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src} mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man} mkdir -v /usr/{,local/}share/{misc,terminfo,zoneinfo} mkdir -v /usr/libexec mkdir -pv /usr/{,local/}share/man/man{1..8} mkdir -v /usr/lib/pkgconfig case $(uname -m) in x86_64) mkdir -v /lib64 ;; esac mkdir -v /var/{log,mail,spool} ln -sv /run /var/run ln -sv /run/lock /var/lock mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}</userinput></screen> <screen arch="ml_32,ml_x32,ml_all"><userinput>mkdir -pv /{bin,boot,etc/{opt,sysconfig,ld.so.conf.d},home,lib/firmware,mnt,opt} mkdir -pv /{media/{floppy,cdrom},sbin,srv,var} install -dv -m 0750 /root install -dv -m 1777 /tmp /var/tmp mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src} mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man} mkdir -v /usr/{,local/}share/{misc,terminfo,zoneinfo} mkdir -v /usr/libexec mkdir -pv /usr/{,local/}share/man/man{1..8} mkdir -v /usr/lib/pkgconfig mkdir -v /lib64 mkdir -v /var/{log,mail,spool} ln -sv /run /var/run ln -sv /run/lock /var/lock mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}</userinput> <userinput arch="ml_32,ml_all">mkdir -pv /usr/lib32 install -vdm755 /usr/lib32/pkgconfig</userinput> <userinput arch="ml_x32,ml_all">mkdir -pv /usr/libx32 install -vdm755 /usr/libx32/pkgconfig</userinput></screen> <para>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 <systemitem class="username">root</systemitem>, and another to the directories for temporary files.</para> <para>The first mode change ensures that not just anybody can enter the <filename class="directory">/root</filename> 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 <filename class="directory">/tmp</filename> and <filename class="directory">/var/tmp</filename> directories, but cannot remove another user's files from them. The latter is prohibited by the so-called <quote>sticky bit,</quote> the highest bit (1) in the 1777 bit mask.</para> <sect2> <title>FHS Compliance Note</title> <para>The directory tree is based on the Filesystem Hierarchy Standard (FHS) (available at <ulink url="https://refspecs.linuxfoundation.org/fhs.shtml"/>). The FHS also specifies the optional existence of some directories such as <filename class="directory">/usr/local/games</filename> and <filename class="directory">/usr/share/games</filename>. We create only the directories that are needed. However, feel free to create these directories. </para> </sect2> </sect1>