Пришло время создать полную структуру каталогов в файловой системе LFS.
Некоторые из каталогов, упомянутых в этом разделе, возможно, уже были созданы ранее с помощью явных инструкций или при установке некоторых пакетов. Они повторяются ниже для полноты картины.
Создайте несколько каталогов, которые не входили в ограниченный набор, используемый в предыдущих главах, выполнив следующую команду:
mkdir -pv /{boot,home,mnt,opt,srv}
Создайте необходимые подкаталоги, выполнив следующие команды:
mkdir -pv /etc/{opt,sysconfig} mkdir -pv /lib/firmware mkdir -pv /media/{floppy,cdrom} mkdir -pv /usr/{,local/}{include,src} mkdir -pv /usr/local/{bin,lib,sbin} mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man} mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo} mkdir -pv /usr/{,local/}share/man/man{1..8} mkdir -pv /var/{cache,local,log,mail,opt,spool} mkdir -pv /var/lib/{color,misc,locate} ln -sfv /run /var/run ln -sfv /run/lock /var/lock install -dv -m 0750 /root install -dv -m 1777 /tmp /var/tmp
Необходимые каталоги для поддержки multilib были созданы на предыдущих этапах установки.
По умолчанию каталоги создаются с правами 755, но это нежелательно
делать для всех каталогов. В приведенных выше командах вносятся два
изменения — одно в домашний каталог пользователя root
, а другое в каталоги для временных файлов.
Первое изменение гарантирует, что никто не сможет войти в каталог
/root
— точно так же, как обычный
пользователь сделал бы это со своим собственным домашним каталогом.
Второе изменение гарантирует, что любой пользователь может писать в
каталоги /tmp
и /var/tmp
, но не может удалять из них файлы другого
пользователя. Последнее запрещено так называемым «sticky bit (липким
битом)», старшим битом (1) в битовой маске 1777
Это дерево каталогов основано на стандарте иерархии файловой
системы (FHS) (доступен по адресу https://refspecs.linuxfoundation.org/fhs.shtml).
FHS также указывает, что наличие некоторых каталогов необязательно,
например, /usr/local/games
и
/usr/share/games
. В LFS мы создаем
только те каталоги, которые действительно необходимы. Однако, не
стесняйтесь создавать дополнительные каталоги, если хотите.
FHS не требует наличия каталога /usr/lib64
, и редакторы LFS решили его не
использовать. Чтобы инструкции в LFS и BLFS работали корректно,
крайне важно, чтобы этот каталог не существовал. Время от времени
вам следует проверять, что он не существует, потому что его легко
создать непреднамеренно, и это, вероятно, приведет к поломке
вашей системы.