パーミッション(アクセス権)

システム上の全ファイルには 所有者 がいる。これはユーザのだれか(ふつうはそのファイルを作った人)だ。また、各ファイルには パーミッション(アクセス権) の体系があって、それがファイルへのアクセスをコントロールしている。

ふつうのファイルには、3種類のアクセス権(パーミッション)がある。読み、書き、実行だ(「実行」は実行可能なものでしか意味がない)。これを3種類のユーザについて、別々に設定できる。ファイルの所有者、ファイルを所有するグループ内のユーザ、その他のみんな。ユーザグループの議論はこの文書の扱う範囲を超える。その他二つは、読んで字のごとし。つまり /home/sasha/talk.txt というファイルのパーミッションが、ユーザ sasha に対しては読み書き可能になっていて、その他全員には読み出し専用になっていれば、このファイルを変更できるのは sasha だけ、というわけだ。

新規に作られるファイルはすべて、標準的なパーミッションを持っている。ふつうは、それを作ったユーザは読み書き可能で、その他みんなは読み出し専用だ。あるファイルのパーミッションがどうなっているか見たければ、GNOME ファイルマネージャを使おう。そのファイルを右クリックして、ポップアップメニューから プロパティ を選び in the pop-up menu, and then the アクセス権 タブを選ぶ。このダイアログを使って、パーミッション(アクセス権)を変えられる。それぞれの権限にあたる四角をクリックすると、それが有効になる。もちろんファイルのアクセス権を変えられるのは、ファイル所有者かシステム管理者だけだ。上級ユーザは、新規ファイルにつくデフォルトのパーミッション(アクセス権限)も変えられる。デフォルトのシェル (ふつうは bash , csh tcsh ) の man page を見て umask というコマンドを探そう。

ファイルにはまた、 UID, GID, "スティッキー" ビットといった特別な属性もある。これは上級ユーザ専用だ。なんだかわからなければ、いじらないこと。(好奇心旺盛な人へ:これらのパーミッションは、ふつうは実行ファイルにつけて、ユーザ自身にはアクセスできないファイルを読み書きする 一部の コマンドが実行できるようにするのに使う)。

ファイルと同じように、ディレクトリにもパーミッション(アクセス権)がある。ここでも、パーミッション(アクセス権)の種類は3つだ。読み、書き、実行。でも、ディレクトリの場合には意味がちがう。つまりディレクトリを "読む" パーミッションは、そのディレクトリの中身を見たり、中のファイルを検索する許可だ。 "書く" のは、そのディレクトリの中にファイルを作ったり、ディレクトリのファイルを削除したりするパーミッションだ。そして "実行" は、そのディレクトリのファイルをアクセスする権限のことだ。

ちなみに、あるファイルのパーミッション(アクセス権)は、そのファイルが置かれているディレクトリのパーミッション(アクセス権)にも依存する。ファイルが読めるには、そのファイル自身の読み出し権限と、それが含まれるディレクトリの "実行" 権限が必要になる。だから sasha が、ほかのだれにも自分のファイルを見られたくなければ、ホームディレクトリの実行権限を、他のユーザには認めないようにすればいい。こうすれば sasha 自身(そしてもちろん root)以外は、だれもかれのファイルを読めなくなる。かれの個別ファイルのアクセス権はまったく影響しない。

パーミッション(アクセス権)について詳しい説明は、たとえば GNU ファイルユーティリティ パッケージの info page を見るといい。