6.5. Создание директорий

6.5. Создание директорий

Теперь нам надо создать структуру файловой системы LFS. Создадим дерево директорий, используя следующие команды:

install -d /{bin,boot,dev,etc/opt,home,lib,mnt}
install -d /{sbin,srv,usr/local,var,opt}
install -d /root -m 0750
install -d /tmp /var/tmp -m 1777
install -d /media/{floppy,cdrom}
install -d /usr/{bin,include,lib,sbin,share,src}
ln -s share/{man,doc,info} /usr
install -d /usr/share/{doc,info,locale,man}
install -d /usr/share/{misc,terminfo,zoneinfo}
install -d /usr/share/man/man{1,2,3,4,5,6,7,8}
install -d /usr/local/{bin,etc,include,lib,sbin,share,src}
ln -s share/{man,doc,info} /usr/local
install -d /usr/local/share/{doc,info,locale,man}
install -d /usr/local/share/{misc,terminfo,zoneinfo}
install -d /usr/local/share/man/man{1,2,3,4,5,6,7,8}
install -d /var/{lock,log,mail,run,spool}
install -d /var/{opt,cache,lib/{misc,locate},local}
install -d /opt/{bin,doc,include,info}
install -d /opt/{lib,man/man{1,2,3,4,5,6,7,8}}

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

Первой командой смены моды мы запрещаем доступ в директорию /root для всех, кроме владельца -- тоже самое нам надо будет потом сделать для домашних директорий остальных пользователей. Второй командой смены моды мы позволяем всем пользователям записывать и читать файлы в и из директорий /tmp и /var/tmp, но они не смогут удалять оттуда файлы других пользователей. Последнее достигается установкой “sticky bit” - старшего бита в битовой маске 1777.

6.5.1. Совместимость с FHS

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