Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Linux From Scratch (version 6.8)
Назад Глава 6. Установка программ базовой системы Вперед

6.6. Создание важных файлов и символических ссылок

В некоторых программах используются жестко запрограммированные пути к программам, которых еще нет. Чтобы в этом случае не возникало проблем, создайте ряд символических ссылок, которые по мере установки программного обеспечения на протяжении всей этой главы будут заменяться реально существующими файлами:

ln -sv /tools/bin/{bash,cat,echo,pwd,stty} /bin
ln -sv /tools/bin/perl /usr/bin
ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib
ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib
ln -sv bash /bin/sh

В правильной системе Linux в файле /etc/mtab поддерживается список смонтированных файловых систем. Обычно, этот файл должен создаваться, как только монтируется новая файловая система. Поскольку мы внутри нашей среды chroot еще не монтировали каких-либо файловых систем, создайте пустой файл для утилит, которые ожидают, что должен быть файл /etc/mtab:

touch /etc/mtab

Для того, чтобы пользователь root мог заходить в систему с именем "root", в файлах /etc/passwd и /etc/group должны быть соответствующие записи.

Создайте файл /etc/passwd при помощи следующей команды:

cat > /etc/passwd < "EOF"
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/dev/null:/bin/false
nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
EOF

Реальный пароль для root ("х" используется здесь в качестве заполнителя) будет установлен позже.

Создайте файл /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:
cdrom:x:15:
mail:x:34:
nogroup:x:99:
EOF

Созданные группы не являются частью какого-либо стандарта, это лишь группы, частично выбранные в соответствии с приведенными в этой главе требованиями конфигурирования 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 (и в других) использует ряд журнальных файлов для записи информации, указывающей кто и когда входил в систему. Однако эти программы не будут делать записи в журнальных файлах, если эти файлы еще не существуют. Инициализируйте журнальные файлы и установите для них соответствующие права доступа:

touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
chgrp -v utmp /var/run/utmp /var/log/lastlog
chmod -v 664 /var/run/utmp /var/log/lastlog

В файле /var/run/utmp записаны пользователи, которые в настоящее время зарегистрировались в системе. В файле /var/log/wtmp записаны все входы в систему и выходы из системы. В файле /var/log/lastlog записывается, когда каждый пользователь последний раз заходил в систему. В файле /var/log/btmp записываются попытки неудачного входа в систему.


Предыдущий раздел: Оглавление Следующий раздел:
Создание директориев   Заголовки Linux-2.6.37 API