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, то мы создаем ее так, как надо нам.