図5 ユーザー属性
カッコ内の英字1文字はパーミッションの設定で必要になる略語(ニーモニック)です。4番目の属性である「すべてのユーザー」は(1)(2)(3)のすべてのユーザーを合わせたものになります。

[画像のクリックで拡大表示]

図6 アクセス権 カッコ内の英字1文字はパーミッションの設定で必要な略語です。
[画像のクリックで拡大表示]

図7 ファイル構成の例(その2)
[画像のクリックで拡大表示]

図8 -lオプションを付けてlsコマンドを実行
[画像のクリックで拡大表示]

図9 パーミッションを含むファイルの属性情報の内容
[画像のクリックで拡大表示]

表2 ユーザー属性とアクセス権
[画像のクリックで拡大表示]

ファイルの属性

 Linuxはマルチユーザー[表示]OSなので,ファイル(ディレクトリも含みます)の保護機能が組み込まれています。ファイルの保護機能とは,ユーザーやグループごとにアクセスできるファイルを制限することです。これにより,別のユーザーが作成したファイルや(rootユーザーだけが扱えるはずの)システム領域のファイルに対して,だれもが自由にアクセスできないようになっています。

ファイルのパーミッション

 ファイルの保護機能で大きな役割を果たすのが,パーミッションです。パーミッションは,アクセス権とも呼ばれることから分かるように,「だれがアクセスできるのか」を記した情報です。パーミッションはファイルが持つ属性情報の一つです*12[表示]。

 パーミッションの中で重要なのが,「ユーザー属性」と「アクセス権」です。

 まず,ユーザー属性は,図5に示した4通りになります。図5[表示]で,カッコ内の英字1文字は後述するパーミッションの設定で必要になる略語(ニーモニックと言います)です。また,4番目の属性である「すべてのユーザー」は(1)(2)(3)のすべてのユーザーを合わせたものになります。

 アクセス権には,図6[表示]の3つがあります。カッコ内の英字1文字はパーミッションの設定で必要な略語です。

ファイル情報の表示

 パーミッションの具体的な設定方法を紹介する前に,ファイルの情報を表示する「ls*13[表示]」コマンドを紹介します。例えば,図7[表示]のファイル・システムにおいて,カレント・ディレクトリが/home/junだと仮定します。ここでlsコマンドを実行します。

lsコマンドに引数を何も指定していませんので,カレント・ディレクトリのファイル情報が表示されます。ここでは,カレント・ディレクトリの/home/junに存在するディレクトリbinと3つのファイルfile1,file2,file3の各々が表示されています。しかし,表示された情報ではディレクトリとファイルの区別がつきません*14[表示]。

 ディレクトリとファイルを区別できる情報を表示したい場合には,「-F(file typeの略)」オプションを指定します。コマンド名lsに続いて1文字以上の空白文字を入力し,-Fオプションを付加します。

ファイルについては表示に変化はありませんが,ディレクトリには名前の後に「/」が付加されて表示されます。

 lsコマンドには,-Fオプションのほかにもさまざまなオプションが指定できます。ここでは-R(recursiveの略)と,-l(longの略)オプションを紹介しておきます。

 -Rオプションを指定すると,表示対象となったディレクトリ(ここでは,カレント・ディレクトリ)の下にあるディレクトリのファイル情報をすべて再帰的に表示します。ちなみに,似た機能を持ったコマンドとしてtreeがあります*15[表示]。

 -lオプションを指定すると,ファイルの属性情報も表示されます(図8[表示])。最初の行に「合計 8」が表示されていますが,これはこのディレクトリ内のすべてのファイルの合計ディスク容量(デフォルトでは,1024バイト単位)です。2行目以降で,1行当たり1ファイルの情報が表示されています。

 各行の先頭の1文字はファイルの種類を表しています。すなわち,ディレクトリは「d」,通常ファイルは「-」です。特殊ファイルは「c」あるいは「b」です。

 続く9文字はファイルのパーミッションです。特殊文字「-」はパーミッションが設定されていないことを表します。ファイルfile1について,表示された情報の意味を図9[表示]に示します。

 ファイルfile1は,ファイル所有者(この例ではjun)は読み書き可能,ファイル所有者の所属するグループ(この例ではjun)およびその他のユーザーは読み込みのみ可能,というようにパーミッションが設定されています。したがって,ファイルfile1を書き換えたり,削除したりできるのは,ファイル所有者本人だけということになります*16[表示]。

 また,ディレクトリにも当然,パーミッションはあります。あるディレクトリ内のファイルにアクセスできるかどうかは,そのディレクトリのパーミッションに依存します。ディレクトリのパーミッションについては,ファイルのアクセス権と意味が若干変わりますので,表2[表示]で再確認しておきましょう。

パーミッションの変更

 ファイル所有者(とrootユーザー)は,ファイルのパーミッションを変更できます。そのコマンド名は,「chmod*17[表示]」です。パーミッションの変更方法は複数ありますが,ここでは略語を用いる方法を紹介します。

 chmodコマンドでは,ファイルのアクセスを許可する(アクセス・フラグを設定する)場合には「+」,許可しない(設定しない)場合には「-」を付加します。

 例えば,ファイルfile1で,ファイル所有者の所属するグループのユーザー(グループ名はjun)にも書き出しを許可する場合には,

と入力します*18[表示]。gは「ファイル所有者の所属するグループのユーザー」,wは「ファイルへの書き出し」を意味する略語です。

 ファイルfile1に対してその他のユーザーからのアクセスを一切許可しない場合には,

と入力します。

 さらに,ファイル所有者自身の書き出しも許可しない場合には,

と入力します。こうしておけば,自分で誤ってファイルを削除してしまうことを防げますが,ファイルの修正もできなくなります。ファイルの内容を修正あるいは削除したい場合は,再度chmodコマンドでファイル所有者の書き出しを許可します。