#### Linux From Scratch - Version 7.10

### Chapter 4. Final Preparations

- Prev

  Creating the $LFS/tools Directory

- 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, we recommend building the packages in this chapter as an unprivileged user. You could use your own user name, but to make it easier to set up a clean working environment, create a new user called `lfs` as a member of a new group (also named `lfs`) and use this user 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

The meaning of the command line options:

`-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 (default is `/etc/skel`) by changing the input location to the special null device.

`lfs`

  This is the actual name for the created group and user.

To log in as `lfs` (as opposed to switching to user `lfs` when logged in as `root`, which does not require the `lfs` user to have a password), give `lfs` a password:

    passwd lfs

Grant `lfs` full access to `$LFS/tools` by making `lfs` the directory owner:

    chown -v lfs $LFS/tools

If a separate working directory was created as suggested, give user `lfs` ownership of this directory:

    chown -v lfs $LFS/sources

Next, login as user `lfs`. This can be done via a virtual console, through a display manager, or with the following substitute 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 can be found in detail in `bash(1)` and info bash.

- Prev

  Creating the $LFS/tools Directory

- Next

  Setting Up the Environment

- Up
- Home