Библиотека сайта rus-linux.net
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 |