UNIXのパーミッション

UNIXでコマンドラインからls -lと入力すると、次のようなファイルの情報が画面に表示されます。

-rwxr-xr-x 1 iso iso 1111 2月 22 11:48 index.html

一番左の"-"は、通常ファイルであることを意味します。ディレクトリである場合は、"d"と表示されます。次の9文字"rwxr-xr-x"はファイルのパーミッション(permission)をあらわしています。パーミッションとは、ファイルに対するアクセス権のことで、「読み込み」、「書き込み」、「実行」の3種類の実行権が、「ファイルの所有者」、「グループユーザ」、「その他」に設定されています。最初の3文字が、ファイルの所有者のパーミッション、次の3文字がグループユーザのパーミション、最後の3文字がその他のユーザのパーミションを意味します。各々の3文字は、順番に「読む」、「書く」、「実行する」のアクセス権を意味しており、次の記号であらわされます。

読むことができる(readble)r
書くことができる(writable)rw
実行することができる(executable)x

実行権がない場合は"-"と表示されます。上の例のindex.htmlの場合にあてはめてみると、ファイルの所有者は読み込み・書き込み・実行ができ、グループユーザとその他のユーザはは読み込み・実行ができ、書き込みができないということになります。

読み込み・書き込み・実行の3つのパーミッションは2進数で3桁の数字であらわすこともできます。2進数の3桁に、上位から順に読み込み・書き込み・実行を対応させ、アクセス権がある場合はその桁が1、ない場合は0とします。例えば、パーミションが"rwx", "r-x", "r--"の場合、2進法及び8進法であらわすと次のようになります。

rwx →1112 = 4+2+1 = 7
r-x →1012 = 4+0+1 = 5
r-- →1002 = 4+0+0 = 4

このユーザの種類毎のパーミションを8進数であらわしたものを順番に並べたものが、パーミションの数字です。例えば、"rwxr-xr-x"は755"、rwxr--r--"は744とあらわされます。

ファイルのパーミッションはchmodコマンドによって変更することができます。例えば、index.htmlに対してパーミションを"rwxr-xr-x"とするには、次のように入力します。

chmod 755 index.html

ファイルのパーミッションが"rwxr--r--"の場合に、グループユーザとその他のユーザに実行の実行権を追加する場合は、つぎのように入力します。

chmod go+x index.html

すると、パーミッションは"rwxr-xr-x"となります。ここで、gはグループユーザ、oはその他のユーザをあらわしています。その他、uが所有者、aが全員をあらわします。逆に、グループとその他のユーザから書き込みと実行の実行権を削除するには、次のように入力します。

chmod go-wx index.html

ページ先頭へ