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/lib/locale 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
ディレクトリは標準ではパーミッションモード 755 で生成されますが、どのディレクトリであっても、このままとするのは適当ではありません。
上のコマンド実行ではパーミッションを変更している箇所が二つあります。 一つは root
ユーザーのホームディレクトリに対してであり、もう一つはテンポラリディレクトリに対してです。
パーミッションモードを変更している一つめは /root
ディレクトリに対して、他のユーザーによるアクセスを制限するためです。
通常のユーザーが持つ、自分自身のホームディレクトリへのアクセス権設定と同じことを行ないます。 二つめのモード変更は
/tmp
ディレクトリや /var/tmp
ディレクトリに対して、どのユーザーも書き込み可能とし、ただし他のユーザーが作成したファイルは削除できないようにします。 ビットマスク
1777 の最上位ビット、いわゆる「スティッキービット
(sticky bit)」を用いて実現します。
本書のディレクトリ構成は標準ファイルシステム構成 (Filesystem Hierarchy Standard; FHS)
に基づいています。(その情報は https://refspecs.linuxfoundation.org/fhs.shtml
に示されています。) FHS では、追加ディレクトリとして /usr/local/games
や /usr/share/games
などを規定しています。 したがって LFS
では、本当に必要なディレクトリのみを作成していくことにします。 他のディレクトリについては、どうぞ自由に取り決めて作成してください。
FHS ではディレクトリ /usr/lib64
の利用を必須とはしていません。 そこで LFS 編集者はこれを利用しないことに取り決めました。 LFS や BLFS
での手順を有効なものにするためには、このディレクトリをないものとして扱うことが必要です。
このディレクトリがないことを繰り返し確認してください。
うっかり生成してしまうようなことがあると、システムが壊れてしまうことがあるからです。