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
ディレクトリは標準ではパーミッションモード 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
などを規定しています。
したがって本書では必要なディレクトリのみを作成していくことにします。
他のディレクトリについては、どうぞ自由に取り決めて作成してください。