Для возможности регистрации в качестве пользователя root и для распознавания имени “root” нам необходимо создать соответствующие элементы в файлах /etc/passwd и /etc/group.
Создадим файл /etc/passwd запуском команды:
cat > /etc/passwd << "EOF"
root:x:0:0:root:/root:/bin/bash
EOF
Пароль пользователя root (символ “x” заменяет его здесь) будет определен позднее.
Создадим файл /etc/group запуском следующей команды:
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:
video:x:12:
utmp:x:13:
usb:x:14:
EOF
Созданные группы не являются частью какого-то стандарта— эти группы будут использоваться при конфигурации Udev в следующей главе. База стандарта Linux (LSB, доступна на http://www.linuxbase.org) рекомендует, чтобы после группы “root” с ID группы (GID) 0 находилась группа “bin” с GID, равным 1. Все другие имена групп и их GID могут свободно выбираться пользователем, но некоторые пакеты зависят от имени группы, хоть и не зависят от номера GID.
Для удаления приглашеня с текстом “I have no name!” запустим новый shell. После того, как полная Glibc была установлена в Главе 5 и файлы /etc/passwd и /etc/group были созданы, имя пользователя и имя группы теперь будут работать.
exec /tools/bin/bash --login +h
Замечание по использованию параметра +h. Это скажет bash не использовать внутренний кеш путей. Без этого bash будет запоминать пути к исполненым бинарникам. Поскольку мы собираемся использовать вновь скомпилированые пакеты по мере их установки, мы должны отключить эту функцию в этой главе.
Программы login, agetty и init (и другие) используют некоторые лог-файлы для записи информации, например кто был зарегистрирован в системе и когда. Хотя эти программы не будут записывать в лог-файлы если они пока отсутствуют. Проинициализируем лог-файлы и дадим им правильные права:
touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
chgrp utmp /var/run/utmp /var/log/lastlog
chmod 664 /var/run/utmp /var/log/lastlog
Файл /var/run/utmp записывает пользователей, которые уже зарегистрировались.
Файл /var/log/wtmp записывает все входы в систему и выходы из системы.
Файл /var/log/lastlog записывает, когда каждый пользователь последний раз регистрировался в системе.
Файл /var/log/btmp записывает неправильые регистрации.