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

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

mkdir -p /{bin,boot,dev/{pts,shm},etc/opt,home,lib,mnt,proc}
mkdir -p /{root,sbin,tmp,usr/local,var,opt}
for dirname in /usr /usr/local
do
mkdir $dirname/{bin,etc,include,lib,sbin,share,src}
ln -s share/{man,doc,info} $dirname
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}}

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

chmod 0750 /root
chmod 1777 /tmp /var/tmp

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

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

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