Linux From Scratch: Version 5.0-pre1
Prev | Chapter 6. Installing basic system software | Next

# Creating the passwd and group files

In order for root to be able to login and for the name "root" to be recognized, there need to be relevant entries in the `/etc/passwd` and `/etc/group` files. Also, to support one of the coreutils tests, we will also create the user and group nobody, which is almost universally present on Linux computers.

Create the `/etc/passwd` file by running the following command:

    cat > /etc/passwd << "EOF"
    root:x:0:0:root:/root:/bin/bash
    nobody:x:1000:1000:nobody:/:/bin/bash
    EOF

The actual password for root (the "x" here is just a placeholder) will be set later.

Create the `/etc/group` file by running the following command:

    cat > /etc/group << "EOF"
    root:x:0:
    bin:x:1:
    sys:x:2:
    kmem:x:3:
    tty:x:4:
    tape:x:5:
    daemon:x:6:
    floppy:x:7:
    disk:x:8:
    lp:x:9:
    dialout:x:10:
    audio:x:11:
    nobody:x:1000:
    EOF

The created groups aren't part of any standard -- they are the groups that the MAKEDEV script in the next section uses. Besides the group "root", the LSB (http://www.linuxbase.org) recommends only a group "bin", with a GID of 1, be present. All other group names and GIDs can be chosen freely by the user, as well-written packages don't depend on GID numbers but use the group's name.

Lastly, we re-login to the chroot environment. User name and group name resolution will start working immediately after the `/etc/passwd` and `/etc/group` files are created, because we installed a full glibc in Chapter 5. This will get rid of the "I have no name!" prompt.

    exec /tools/bin/bash +h --login

Prev | Home | Next
Creating essential symlinks | Up | Creating devices (Makedev-1.7)