#### Linux From Scratch - Version 12.0-rc1

### Chapter 4. Final Preparations

- Prev

  Creating a Limited Directory Layout in the LFS Filesystem

- Next

  Setting Up the Environment

- Up
- Home

# 4.3. Adding the LFS User

When logged in as user `root`, making a single mistake can damage or destroy a system. Therefore, the packages in the next two chapters are built as an unprivileged user. You could use your own user name, but to make it easier to set up a clean working environment, we will create a new user called `lfs` as a member of a new group (also named `lfs`) and run commands as `lfs` during the installation process. As `root`, issue the following commands to add the new user:

    groupadd lfs
    useradd -s /bin/bash -g lfs -m -k /dev/null lfs

This is what the command line options mean:

`-s /bin/bash`

  This makes bash the default shell for user `lfs`.

`-g lfs`

  This option adds user `lfs` to group `lfs`.

`-m`

  This creates a home directory for `lfs`.

`-k /dev/null`

  This parameter prevents possible copying of files from a skeleton directory (the default is `/etc/skel`) by changing the input location to the special null device.

`lfs`

  This is the name of the new user.

If you want to log in as `lfs` or switch to `lfs` from a non-`root` user (as opposed to switching to user `lfs` when logged in as `root`, which does not require the `lfs` user to have a password), you need to set a password for `lfs`. Issue the following command as the `root` user to set the password:

    passwd lfs

Grant `lfs` full access to all the directories under `$LFS` by making `lfs` the owner:

    chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools}
    case $(uname -m) in
      x86_64) chown -v lfs $LFS/lib64 ;;
    esac

### Note

In some host systems, the following su command does not complete properly and suspends the login for the `lfs` user to the background. If the prompt "lfs:~$" does not appear immediately, entering the fg command will fix the issue.

Next, start a shell running as user `lfs`. This can be done by logging in as `lfs` on a virtual console, or with the following substitute/switch user command:

    su - lfs

The “`-`” instructs su to start a login shell as opposed to a non-login shell. The difference between these two types of shells is described in detail in `bash(1)` and info bash.

- Prev

  Creating a Limited Directory Layout in the LFS Filesystem

- Next

  Setting Up the Environment

- Up
- Home