ファイルやディレクトリの属性を知るには、-l のオプション付き で、ls コマンドを発行します。
> ls -l例えば、ls -lF を実行すると、drwx------ 4 kanemaru other 512 Jun 6 13:24 Mail/ -rw-r--r-- 1 kanemaru other 89692 Jul 8 14:45 PRAC011.dvi -rw------- 1 kanemaru other 14 Aug 7 09:18 dead.letter drwxr-xr-x 2 kanemaru other 512 Jun 19 13:40 dvifile/ -rw-r--r-- 1 kanemaru other 239036 Jun 1 12:16 dvifilelsというように表示されます。最初の"d r w x - "などの文字がつらなった 10 桁が、ファイルの 属性を表します。次の数字は、ディレクトリ内のディレクトリの数(ファイ ルの場合には常に1)、続いて、所有者と所有グループ(以下、グループ)、 次がファイルの大きさ(ディレクトリの場合は常に 512) です。その後ファイルの作成・更新日、ファイル・ディレクトリ名と続きます。
すなわち、属性、ディレクトリ数、所有者、グループ、ファイルの大きさ、ファイルの 作成・更新日、ファイル名、という順番という順番になっています。
d r w x の意味は、
d ディレクトリであることを示す(先頭にのみ付く) r 読み込み権 w 書き込み権 x 実行権です。(これ以外に、s のビットが立っているものもありますが、ここでは説明略)実行権は、コマンドやスクリプトなどの実行ファイル以外にも、通常はディレクトリにも与えます。
この読み書き実行権は、所有者グループ、その他のユーザ(以下、その他)に 対して別々に指定できます。10桁の文字の頭を 0 番目とすると、
を示します。
普通にファイルやディレクトリを作成した場合の属性は次の ようになっています。
ファイルを作成した場合
-rw-r--r--ディレクトリを作った場合
drwxr-xr-xこのように、ディフォルトの属性は、所有者のみに書き込み権 が与えられ、全ユーザに読み込み権が与えらています。 また、ディレクトリには、全ユーザに実行権が与えられている ことに注意して下さい。実行権が与えれられていないとそのディ レクトリにアクセスすることができません。
属性の変更には、次の2つのやり方があります。
r = 4 (=22) w = 2 (=21) x = 1 (=20)としてそれをたし合わせて、それを所有者、グループ、その他の 順に並べます。例えば abc というファイルを、
chmod 751 abcとした場合には、
-rwxr-x--xとなります。
所有者に対する属性を変更する場合
[例] 所有者に実行権を与える。
chmod u+x abcグループに対する属性を変更する場合
[例] グループに書き込み権を与える。 chmod g+w abc その他に対する属性を変更する場合
[例] その他から読み込み権を削除する。
chmod o-r abc+ の後の、u はユーザ(owner)、g はグループ、o はその他(ユーザとグループ以外)、a は全員を意味します。また、chmod -r abcと、u, g, o, aを省略した場合は、chmod a-r abcと同じ意味になります。
#この変更は通常 root 権限を持っていないとできません。
abc というファイルまたはディレクトリの所有者を、hoge に変更する。
chown hoge abcabc というファイルまたはディレクトリの所有グループを、banana に変更する。
chgrp banana abc