В некоторых программах используются жестко запрограммированные пути к программам, которых еще нет. Чтобы в этом случае не возникало проблем, создайте ряд символических ссылок, которые по мере установки программного обеспечения на протяжении всей этой главы будут заменяться реально существующими файлами:
В правильной системе Linux в файле /etc/mtab поддерживается список смонтированных файловых систем. Обычно, этот файл должен создаваться, как только монтируется новая файловая система. Поскольку мы внутри нашей среды chroot еще не монтировали каких-либо файловых систем, создайте пустой файл для утилит, которые ожидают, что должен быть файл /etc/mtab:
touch /etc/mtab
Для того, чтобы пользователь root мог заходить в систему с именем "root", в файлах /etc/passwd и /etc/group должны быть соответствующие записи.
Создайте файл /etc/passwd при помощи следующей команды:
Созданные группы не являются частью какого-либо стандарта, это лишь группы, частично выбранные в соответствии с приведенными в этой главе требованиями конфигурирования Udev, и частично определяемые общими соглашениями, используемыми в ряде существующих дистрибутивов Linux. В стандарте Linux Standard Base (LSB, доступен на http://www.linuxbase.org) рекомендуется только, чтобы кроме группы root с идентификатором группы (GID), равным 0, присутствовала группа bin с GID, равным 1. Все другие имена групп и идентификаторы GID могут свободно выбираться системным администратором, поскольку хорошо написанные программы не зависят от номеров GID, а используют только имя группы.
Чтобы удалить строку приглашение "I have no name!" ("У меня нет имени!") запустите новую командную оболочку. Поскольку в главе 5 был полностью установлен пакет Glibc и созданы файлы /etc/passwd и /etc/group, теперь удастся найти имя пользователя и имя группы:
exec /tools/bin/bash --login +h
Обратите внимание на использование директивы +h. Она говорит командной оболочке bash не использовать хеширование своих внутренних путей поиска. Без этой директивы bash будет помнить пути к двоичным файлам, которые она выполняла. Чтобы иметь возможность использовать вновь скомпилированные двоичные файлы сразу, как только они будут установлены, на протяжении этой главы будет использоваться директива+h.
В программах login, agetty и init (и в других) использует ряд журнальных файлов для записи информации, указывающей кто и когда входил в систему. Однако эти программы не будут делать записи в журнальных файлах, если эти файлы еще не существуют. Инициализируйте журнальные файлы и установите для них соответствующие права доступа:
В файле /var/run/utmp записаны пользователи, которые в настоящее время зарегистрировались в системе. В файле /var/log/wtmp записаны все входы в систему и выходы из системы. В файле /var/log/lastlogзаписывается, когда каждый пользователь последний раз заходил в систему. В файле /var/log/btmp записываются попытки неудачного входа в систему.