#### Linux From Scratch - Version 11.1-rc1

### Chapter 7. Entering Chroot and Building Additional Temporary Tools

- Prev

  Entering the Chroot Environment

- Next

  Creating Essential Files and Symlinks

- Up
- Home

# 7.5. Creating Directories

It is time to create the full structure in the LFS file system.

Create some root-level directories that are not in the limited set required in the previous chapters by issuing the following command:

### Note

Some of the directories below have already been created earlier with explicit instructions or when installing some packages. They are repeated below for completeness.

    mkdir -pv /{boot,home,mnt,opt,srv}

Create the required set of subdirectories below the root-level by issuing the following commands:

    mkdir -pv /etc/{opt,sysconfig}
    mkdir -pv /lib/firmware
    mkdir -pv /media/{floppy,cdrom}
    mkdir -pv /usr/{,local/}{include,src}
    mkdir -pv /usr/local/{bin,lib,sbin}
    mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
    mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo}
    mkdir -pv /usr/{,local/}share/man/man{1..8}
    mkdir -pv /var/{cache,local,log,mail,opt,spool}
    mkdir -pv /var/lib/{color,misc,locate}

    ln -sfv /run /var/run
    ln -sfv /run/lock /var/lock

    install -dv -m 0750 /root
    install -dv -m 1777 /tmp /var/tmp

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.

## 7.5.1. FHS Compliance Note

The directory tree is based on the Filesystem Hierarchy Standard (FHS) (available at https://refspecs.linuxfoundation.org/fhs.shtml). The FHS also specifies the optional existence of some directories such as `/usr/local/games` and `/usr/share/games`. We create only the directories that are needed. However, feel free to create these directories.

- Prev

  Entering the Chroot Environment

- Next

  Creating Essential Files and Symlinks

- Up
- Home