2.6. 変数 $LFS と umask の設定

本書の中では環境変数 LFS を何度も用います。 LFS システムのビルド作業時には常に定義しておくことを忘れないでください。 この変数は LFS パーティションとして選んだマウントポイントを定義します。 例えば /mnt/lfs というものです。 他の名前にしても構いません。 LFS を別のパーティションにビルドする場合、このマウントポイントはそのパーティションを示すようにしてください。 ディレクトリを取り決めたら、変数を以下のコマンドにより設定します。

export LFS=/mnt/lfs

上のように変数を定義しておくと、例えば mkdir $LFS/tools といったコマンドを、この通りに入力することで実行できるので便利です。 これが実行されると、シェルが$LFS/mnt/lfsに (あるいは変数にセットされている別のディレクトリに) 置換して処理してくれます。

ファイルモード生成マスク (umask) を 022 に設定します。 ホストディストロがこれとは違う値をデフォルトとしている場合を考慮して行うものです。

umask 022

umask を 022 に設定しておけば、新たに生成するファイルやディレクトリは、所有者のみが書き込み可能となり、他ユーザーは読み込みおよび (ディレクトリについての) 検索についてのみ可能となります。 (これはシステムコール open(2) がこのデフォルトモードを利用する前提としており、新規ファイルのモードは 644、新規ディレクトリは 755 となります。) LFS システムにおいて、デフォルト値を緩めすぎればセキュリティモードを生み出すことになり、逆に厳しすぎれば、ビルドや LFS システム利用自体に不都合な問題を引き起こすことにもなります。

[注意]

注意

$LFS がセットされていて、umask は 022 に設定されていることを忘れずに確認してください。 特に、別ユーザーでログインし直した場合 (su コマンドによって root ユーザーや別のユーザーでログインした場合) には、忘れずに確認してください。

echo $LFS

上の出力結果が LFS システムのビルドディレクトリであることを確認してください。 本書に示す例に従っている場合は /mnt/lfs が表示されるはずです。

umask が正しく設定されているかどうかを以下により確認してください。

umask

出力結果は 022 となっているはずです。

上の 2 つのコマンドの出力が正しくない場合は、冒頭に示したコマンド実行により $LFS 変数に正しいディレクトリを設定し、umask には 022 を設定してください。

[注記]

注記

LFS 変数と umask を確実に設定しておくために、ローカルの .bash_profile および /root/.bash_profile に上記変数を export コマンド、mask コマンドを記述しておく方法もあります。 なお /etc/passwd ファイルにて LFS 変数を必要とするユーザーは、シェルとして bash を利用するようにしてください。 .bash_profile ファイルはログインプロセスの一部として機能するためです。

もう一つ気にかけることとして、ホストシステム上にログ出力を行う方法に関してです。 グラフィカルディスプレイマネージャーを通じてログ出力を行うと、仮想端末が起動する際に、ユーザー独自の .bash_profile は普通は用いられません。 この場合は、各ユーザー用と root 用の .bashrc に上記コマンドを追加してください。 ここでディストリビューションの中には、"if" テストを利用して残りの .bashrc を実行しないようにしているものがあります。 非対話形式を利用する場合は、そのテストの直前に上記コマンドを追加してください。