ディレクトリを作成する

さてそれでは 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}}

ディレクトリはデフォルトの設定では許可属性のモード 775 で作られますが、これはすべてのディレクトリに対しては望ましくありません。 二つ変更をします。一つは root のホームディレクトリで、もう一つは一時ファイルのためのディレクトリです。

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

一つ目のモード変更は、通常のユーザーがそのホームディレクトリにするのと同じように、正確に誰も /root ディレクトリへ入れないようにします。 二つ目のモード変更はどのユーザーも /tmp/var/tmp へ書き込めるようにしますが、他のユーザーのファイルを削除できなくします。 後者はいわゆる "sticky ビット" ー 1777 ビットマスクの最上位ビット ー によって禁じられます。

FHS 準拠についての注意

ディレクトリツリーを FHS 標準( http://www.pathname.com/fhs/ で利用できます)に準拠しました。 上で作ったディレクトリツリーに加えて、この規格は /usr/local/games/usr/share/games の存在を規定していますが、基本的なシステムにはこれらはいりません。 しかし、お使いのシステムを FHS 準拠にあわせるのはご自由にどうぞ。 /usr/local/share サブディレクトリの構造に関して、FHS は厳密に規定していませんから、本書で必要だと思うディレクトリをここで作成しました。