【アクセス権(パーミッション)について】


このHPはアクセス権(パーミッション)についてまとめたものです。


1−1 グループと所有者

UNIXやLinuxシステムでは、複数のユーザーをまとめて「グループ」という単位で管理する。全てのユーザーは、どれかのグループに属している。また、ひとりのユーザーが複数のグループに属することもできる。

この「グループ」という機能は、あるファイルの読み・書き・実行をまとめて許可することを可能にする。

ファイルやディレクトリを作成すると、作成したユーザーがその所有者として設定される。同時に、 所有者のプライマリグループが、ファイルや ディレクトリのグループとなる。

例えば、lpicというグループに属するユーザーsuzukiがファイルを作成すると、そのファイルの所有者はsuzukiに、 グループはlpicになる。所有者を確認するには、ls-lコマンドを実行する。





1-2 アクセス権(パーミッション)とは

ファイルやディレクトリには、アクセス権(パーミッション)が設定される。アクセス権(パーミッション)とは、どのユーザーに対してどういった操作を許可するのかという情報の事。

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

●ファイルの所有者(通常はファイルを作成した人自身)
●所有グループに属するユーザー
●その他のユーザー

の3種類に対して設定できる。アクセス権(パーミッション)には、

●そのファイルを読む権限(read)
●ファイルに対して書き込みや変更を加える権限(write)
●ファイルを実行する権限(execute)

がある。

ファイルに対して、読み取り権が与えられている場合、そのファイルの内容を読み出す事は出来るが、変更を加える事はできない。 ディレクトリに対して読み取り権が与えられている場合、そのディレクトリ内のファイル一覧を表示する事ができる。

ファイルに対して、書き込み権が与えられている場合、ファイルの内容を変更したり、削除する事が出来る。 ディレクトリに対して書き込み権が与えられている場合、そのディレクトリ内でファイルを作成したり削除したりする事ができる。

ファイルに対して、実行権が与えられている場合、そのファイルを実行する事が出来る。 ディレクトリに対して実行権が与えられている場合、そのディレクトリ内のファイルにアクセスする事が出来る。



◆アクセス権(パーミッション)の確認

アクセス権(パーミッション)を確認するには、ls-lコマンドを実行する。ls-lコマンドで表示されたパーミッションの内容は、左から見て2文字目から9文字。





この9文字のうち、 最初の3文字が「所有者」に対する権限、次の3文字が「グループ」に対する権限、最後の3文字が「その他のユーザーとグループ」に対する権限を示す。





アクセス権(パーミッション)の左側は、ファイルの種別を表す。「-」は通常のファイル、「d」はディレクトリ、「l」はリンクを表す。


アクセス権(パーミッション)は、 数値でも表すことが出来る。この場合「読み取り=4」「書き込み=2」「実行=1」として、所有者、グループ、その他ユーザーごとに足した数値で表す。





上記の場合、 「754」というのが、数値で表したアクセス権(パーミッション)。



1-3 アクセス権(パーミッション)の変更

ファイルの権限を変更するには、「chmod」コマンドを使う。chmodコマンドは下記の書式の様に使う。

【書式】 chmod <オプション> アクセス権(パーミッション) ファイル名






権限を指定する方法には2つある。シンボリックモードとオクタルモード。どちらを使っても構わない。



■シンボリックモードでの設定

シンボリックモードは、権限の指定に記号を使う。
権限を追加する場合には「+」を、権限を削除する場合には「-」を、権限を指定するには「=」を使う。
所有者は「u」、グループは「g」、その他ユーザーは「o」を、これら3種類の対象をすべて表すには「a」を使う。


次の例では、グループとその他のユーザーに書き込み権を追加している。変更前のアクセス権(パーミッション)が「rw-r--r--」(644)の場合、変更後は「rw-rw-rw-」(666)になる。

$ chmod go+w file



■オクタルモードでの設定

オクタルモードでは、数値表記を使って権限を指定する。

4:読み込み(r) 2:書き込み(w) 1:実行(x)

次の例では、ファイルのアクセス権(パーミッション)を「644」に設定している。
変更前のアクセス権(パーミッション)に関わらず、変更後は「rw-r--r-」(644)。

$ chmod 644 file