[小西ホームページ]   [目次・索引]   [前の授業]   [次の授業]

情報処理IIA(HTML入門)第9回

目次 索引
9.1 ファイルのアクセス権
9.2 HTMLにおけるパス名
9.3 ホームページとディレクトリの設計
9.4 演習9
9.5 レポート課題

9.1 ファイルのアクセス権

マルチユーザシステム

今皆さんが使っているシステムはUNIXとよばれているものの一種です。 UNIXを特徴付ける性質として、マルチユーザシステムmulti-user system)であることがあげられます。 マルチユーザシステムとは、複数の人が利用するための機能を備えたシステムのことです。 マルチユーザシステムの機能のおかげで、同じコンピュータを使っているにもかかわらず、

などといった保護がなされています。 ここでは、この保護機能について説明します。

ファイルの所有者

UNIXでは、すべてのファイルとディレクトリに所有者owner)があります。 つまり、ファイルとディレクトリは必ず誰かのものだということです。 ファイルやディレクトリの所有者は、コマンド ls -lls -l file を用いると確認できます。 (ls -l は、ファイルとディレクトリに関する詳しい情報を表示するコマンドです。)

b00a001@Ampere:~% ls
Mail/     WABI/     WWW/      test.doc
b00a001@Ampere:~% ls -l
合計 55
drwx------   5 b00a001  other        512  4月  3日   3:07 Mail/
drwxr-xr-x   5 b00a001  other        512  4月  3日   3:09 WABI/
drwxr-xr-x   3 b00a001  school      1536  7月 13日  10:04 WWW/
-rw-r--r--   1 b00a001  school     11776  6月 28日  14:23 test.doc
b00a001@Ampere:~% ls -l test.doc
-rw-r--r--   1 b00a001  school     11776  6月 28日  14:23 test.doc
b00a001@Ampere:~%

このうち、左から3番目が所有者を示します。 つまり、ファイル test.doc はユーザ b00a001 のものだということです。

なお、左から4番目は所有グループを示します。 グループgroup)とは、システム管理者が定めたユーザの集まりです。

ファイルのアクセス権

前述の、友達の作ったホームページ(HTMLファイル)が読めるけれど書き換えできない理由は、システムがユーザに読む権利を与え、書く権利を与えなかったからです。 このような権利を、アクセス権permission)とよびます。

ファイルに対しては、次の3種類のアクセス権があります。

ここで、ファイルを削除する権利は書き込み権に含まれます。 また、実行権はプログラムなどのファイルを想定しています。

ディレクトリに対しては、次の3種類のアクセス権があります。

これらのアクセス権が、所有者に対して、所有グループの人に対して、そしてその他の人に対して定まっています。 つまり、アクセス権は全部で9個あるわけです。 この9個をまとめてアクセス権モードとよびます。

前述の ls -l コマンドで、ファイルやディレクトリのアクセス権が確認できます。

b00a001@Ampere:~% ls -l
合計 55
drwx------   5 b00a001  other        512  4月  3日   3:07 Mail/
drwxr-xr-x   5 b00a001  other        512  4月  3日   3:09 WABI/
drwxr-xr-x   3 b00a001  school      1536  7月 13日  10:04 WWW/
-rw-r--r--   1 b00a001  school     11776  6月 28日  14:23 test.doc
b00a001@Ampere:~%

一番左の10文字からなる文字列の、2文字目から10文字目までがアクセス権モードを示しています。 2, 3, 4文字目が所有者に対するr, w, xアクセス権、5, 6, 7文字目が所有グループの人に対するr, w, xアクセス権、8, 9, 10文字目がその他の人に対するr, w, xアクセス権です。 マイナス(-)は権利なしを意味します。

例えば、ファイル test.doc は、読み出しは誰でもできるが、書き込みは所有者のみできるということです。 また、ディレクトリ Mail に対しては、所有者は何でもできるが、所有者以外は何もできないとなります。

これではじめの保護機能が説明できます。

b00a001@Ampere:~% ls -l WWW/ex1.html
-rw-r--r--   1 b00a001  school       155  4月 20日   9:45 WWW/ex1.html
b00a001@Ampere:~% ls -l Mail/inbox/1
-rw-------   1 b00a001  school      1482  4月 13日  10:25 Mail/inbox/1
b00a001@Ampere:~%

ホームページ(HTMLファイル)ex1.html は、すべての人に読み出し権が与えられていますので、友達も読めるのですが、書き込み権は所有者のみですので、友達は書き換えたり消したりできないのです。 また、1番のメール 1 は、所有者以外にアクセス権が与えられていませんので、友達は読むことすらできないのです。

アクセス権の変更

ファイルやディレクトリのアクセス権は自分で変更できます。 これは、コマンド chmod mode file によって行います。 ここで mode は、アクセス権モードを示す3けたの数です。 この3けたの数の作り方は次の通りです。 はじめに、アクセス権r, w, xを表にしたがって数に置き換えます。 (2進数を知っていれば、この対応はすぐ理解できるでしょう。)

表. アクセス権と数の対応
アクセス権
---0
--x1
-w-2
-wx3
r--4
r-x5
rw-6
rwx7

そして、所有者に対して、所有グループの人に対して、その他の人に対してのそれぞれのアクセス権に対応する数を並べて3けたの数を構成します。

例えば、

b00a001@Ampere:~% ls -l
-rw-r--r--   1 b00a001  school     11776  6月 28日  14:23 test.doc
b00a001@Ampere:~% chmod 600 test.doc
b00a001@Ampere:~% ls -l
-rw-------   1 b00a001  school     11776  6月 28日  14:23 test.doc
b00a001@Ampere:~% chmod 444 test.doc
b00a001@Ampere:~% ls -l
-r--r--r--   1 b00a001  school     11776  6月 28日  14:23 test.doc
b00a001@Ampere:~%

はじめの変更で、ファイル test.doc は所有者以外の人が読めなくなります。 (他人に読まれたくないファイルもあるでしょう。) 次の変更で、このファイルは所有者が消したり書き込んだりできなくなります。 (間違って消してしまいたくない場合に有効です。 消したくなったら、アクセス権モードをもとに戻せばよいのです。)

なお、特に指定しないならば、新規のファイルやディレクトリのアクセス権モードは次のように決められます。

したがって、普通に使っているうちは、アクセス権モードにそれほど気を遣う必要はありません。

スーパーユーザ

UNIXでは、スーパーユーザsuper-user)とよばれる特別なユーザが存在します。 スーパーユーザのユーザ名は、通常 root ですので、ルートともよばれます。

スーパーユーザはアクセス権を超えた存在で、システムに関するあらゆる権利を持っています。 たとえファイルのアクセス権モードが 000(所有者すら読み書きできない)であっても、スーパーユーザなら読んだり消したりできます。

システム管理者の業務のひとつに、ユーザの登録や削除があります。 管理者は、必要に応じてスーパーユーザに切り替わり、新入生に必要なファイルを用意したり、卒業生のファイルを抹消したりしているのです。


9.2 HTMLにおけるパス名


9.3 ホームページとディレクトリの設計

ホームページも、規模の小さいうちは、わざわざディレクトリを用意することもありません。 逆に言いますと、大規模なホームページを作成するときには、ディレクトリの利用が重要になります。

ここで、仮に「全日本じゃんけんトーナメント」という大会があるものとしまして、このホームページを設計してみることにします。 この大会は、1972年より毎年開催され、都道府県別に予選が行なわれ、決勝となる全国大会でじゃんけんチャンピオンを決定するというものです。 47都道府県ですでに30回行なわれたことになりますので、地方予選のホームページは47×30=1410ページになります。 全国大会のホームページは30ページです。 ホームページには、大会の記事のほか、大会風景や優勝者の写真を載せることにします。

もっとも単純な設計は、すべてのファイルを一つのディレクトリの中に置くものです。 この場合、ファイル名が重複しないように、

1972hokkaidoprematch.html
1972年北海道予選の記事
1972hokkaidofinalist.jpg
1972年北海道予選の決勝進出者の写真
1972hokkaidoscene.jpg
1972年北海道予選の風景写真
1972finals.html
1972年全国大会の記事
1972champion.jpg
1972年チャンピオンの写真
1972scene.jpg
1972年全国大会の風景写真

などと長い名前にする必要があります。

長い名前のファイルが、一つのディレクトリに4000以上もあったのでは、とても管理しきれません。 また、それぞれのHTMLドキュメントには共通点がありませんので、再利用による作業の効率化も図れません。

そこで、まず開催年を表すディレクトリを作成します。 次に、各年のディレクトリの中に、さらに都道府県を表すディレクトリを作成します。 全国大会関係のファイルは開催年ディレクトリの中に置き、地方大会関係のファイルは都道府県ディレクトリの中に置きます。 こうしますと、ファイル名を長くしなくても重複は避けられます。

1972hokkaidoprematch.html
→1972/hokkaido/prematch.html
1972hokkaidofinalist.jpg
→1972/hokkaido/finalist.jpg
1972hokkaidoscene.jpg
→1972/hokkaido/scene.jpg
1972finals.html
→1972/finals.html
1972champion.jpg
→1972/champion.jpg
1972scene.jpg
→1972/scene.jpg

また、都道府県ディレクトリの中にはファイルが3つ、開催年ディレクトリの中にはファイルとディレクトリが50個と、把握可能な分量です。

メリットはこれだけではありません。 ホームページ作成の際、タグの再利用ができるのです。 例えば、1972年愛知県予選の記事のHTMLドキュメントには、決勝進出者と予選風景の写真を埋め込むために、

<img src="finalist.jpg">
...
<img src="scene.jpg">

というタグを使っているはずですが、これはそのまま1972年秋田県予選に使えます。

pathnames on a directory tree

同じディレクトリにはないファイルにリンクを張るには、

<a href="path">〜</a>

という形式を用います。 ここで、pathは相対パス名です。

この場合、リンク先は一つ上の階層のファイル finals.html ですので、相対パス名は

../finals.html

です。 これをhref属性の値としますと、そのファイルにリンクが張られます。

pathnames on a directory tree

同じディレクトリにはない画像ファイルを埋め込むには、

<img src="path">

という形式を用います。 ここで、pathは相対パス名です。

この場合、画像ファイルはディレクトリ ehime の一つ下の階層のファイル finalist.jpg ですので、相対パス名は

ehime/finalist.jpg

です。 これをsrc属性の値としますと、その画像ファイルがホームページに埋め込まれます。

pathnames on a directory tree

9.4 演習9

例を参考にして、3つ(以上)の層からなる階層構造を考え、この構造が反映されるようにディレクトリを作成し、3ページ(以上)のホームページを作成してください。 階層の一つ上と一つ下に行けるように、相対パスを用いてリンクを張ってください。

pathnames on a directory tree
tokyo.html
東京都ガイド

東京都のお勧めスポットは杉並区です。
suginami.html
杉並区ガイド

杉並区は東京都にあります。 杉並区のお勧めスポットは善福寺です。
zempukuji.html
善福寺ガイド

善福寺は杉並区にあります。

9.5 レポート課題

今日の演習9に従ってホームページを作成し、そのファイル名をkonishi@twcu.ac.jpあてにメールで報告してください。 メールには、学生番号、氏名、科目名、授業の日付けを明記してください。


[小西ホームページ]   [目次・索引]   [前の授業]   [次の授業]

2001年6月21日更新
konishi@twcu.ac.jp
Copyright (C) 2001 Zenjiro Konishi. All rights reserved.