6.7. Создание файлов passwd, group и log

Для возможности регистрации в качестве пользователя 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 записывает неправильые регистрации.