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