Читаем Linux From Scratch полностью

mkdir $dirname/share/{dict,doc,info,locale,man}

mkdir $dirname/share/{nls,misc,terminfo,zoneinfo}

mkdir $dirname/share/man/man{1,2,3,4,5,6,7,8}

done &&

mkdir /var/{lock,log,mail,run,spool} &&

mkdir -p /var/{tmp,opt,cache,lib/misc,local} &&

mkdir /opt/{bin,doc,include,info} &&

mkdir -p /opt/{lib,man/man{1,2,3,4,5,6,7,8}} &&

ln -s ../var/tmp /usr

По умолчанию директории создаются с правами доступа 755, однако это подходит не для всех директорий. Мы сделаем два изменения: для домашнего каталога root и для каталога временных файлов.

chmod 0750 /root &&

chmod 1777 /tmp /var/tmp

Первое изменение гарантирует, что не все пользователи имеют доступ к директории /root directory – аналогичные действия выполняет обычный пользователь со своим домашним каталогом. Второе изменение дает любому пользователю право на запись в директории /tmp и /var/tmp, однако не разрешает удалять из них файлы других пользователей. Удаление чужих файлов определяется параметром «sticky bit» – наивысший двоичный знак в двоичной маске 1777.

Итак, после создания директорий переместите tar-архивы исходных кодов пакетов, загруженных по инструкциям Главы 3, в некоторый самостоятельно созданный подкаталог в /usr/src.

Соответствие FHS

При создании директорий мы основывались на стандарте FHS (см. http://www.pathname.com/fhs/). Помимо созданных каталогов данный стандарт ставит условием наличие каталогов /usr/local/games и /usr/share/games, но, по нашему мнению, для базовой системы они не нужны. Однако можете смело привести свою систему к полному соответствию с FHS. Что касается структуры каталога /usr/local/share, стандарт FHS строго не оговаривает его содержимое, так что мы решили создать в нем необходимые, по нашему убеждению, подкаталоги.

<p>Монтирование файловой системы proc</p>

Для обеспечения корректной работы некоторых программ, необходимо установить файловую систему proc в среде chroot. Так как файловая система может быть монтирована сколько угодно раз и в каких угодно местах, проблем с тем, что файловая система proc уже монтирована в вашем базовом дистрибутиве, возникнуть не должно. Тем более, что proc – виртуальная файловая система.

Для монтирования файловой системы proc в /proc, выполните:

mount proc /proc -t proc

Вероятно, следующие предупреждения команды mount будут выведены на экран:

warning: can't open /etc/fstab: No such file or directory

not enough memory

Не обращайте на них особого внимания – наша система полностью не установлена, и некоторые файлы отсутствуют. Само монтирование файловой системы будет выполнено, и на данном этапе нам больше ничего не требуется.

<p>Создание символической ссылки mtab</p>

Следующий шаг – создание символической ссылки /etc/mtab на /proc/mounts. Для этого выполните:

ln -sf /proc/mounts /etc/mtab

Создание этой символической ссылки предотвращает возможные проблемы при монтировании / только для чтения, когда информация в /etc/mtab устарела. Символическая ссылка на /proc/mounts позволяет всегда иметь свежую информацию о монтированных устройствах.

Примечание: Использование данной символической ссылки предполагает, что в ядро вашей системы встроена поддержка файловой системы proc. Данная поддержка встроена по умолчанию, не удаляйте ее, если вы не уверены в своих действиях, т.к. множество других вещей кроме символической ссылки /etc/mtab зависят от нее. Вкратце, убедитесь, что поддержка файловой системы proc включена в ядре.

<p>Создание символических ссылок bash и sh</p>

Некоторые программы при компиляции прописывают ссылки на пока не существующие программы. Для предотвращения связанных с этим проблем, создадим символические ссылки /bin/bash и /bin/sh, указывающие на программу bash, скомпилированную с использованием статических ссылок.

Для создания символических ссылок /bin/bash и /bin/sh, выполните:

ln -s /static/bin/bash /bin/bash &&

ln -s bash /bin/sh

<p>Создание файлов passwd и group</p>

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

Для создания файла /etc/passwd, выполните:

echo «root:x:0:0:root:/root:/bin/bash» > /etc/passwd

Пароль для 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:

Перейти на страницу:

Похожие книги