目次 | 索引 |
---|---|
今皆さんが使っているシステムはUNIXとよばれているものの一種です。 UNIXを特徴付ける性質として、マルチユーザシステム(multi-user system)であることがあげられます。 マルチユーザシステムとは、複数の人が利用するための機能を備えたシステムのことです。 マルチユーザシステムの機能のおかげで、同じコンピュータを使っているにもかかわらず、
などといった保護がなされています。 ここでは、この保護機能について説明します。
UNIXでは、すべてのファイルとディレクトリに所有者(owner)があります。 つまり、ファイルとディレクトリは必ず誰かのものだということです。 ファイルやディレクトリの所有者は、コマンド ls -l や ls -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 |
--x | 1 |
-w- | 2 |
-wx | 3 |
r-- | 4 |
r-x | 5 |
rw- | 6 |
rwx | 7 |
そして、所有者に対して、所有グループの人に対して、その他の人に対してのそれぞれのアクセス権に対応する数を並べて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(所有者すら読み書きできない)であっても、スーパーユーザなら読んだり消したりできます。
システム管理者の業務のひとつに、ユーザの登録や削除があります。 管理者は、必要に応じてスーパーユーザに切り替わり、新入生に必要なファイルを用意したり、卒業生のファイルを抹消したりしているのです。
ホームページも、規模の小さいうちは、わざわざディレクトリを用意することもありません。 逆に言いますと、大規模なホームページを作成するときには、ディレクトリの利用が重要になります。
ここで、仮に「全日本じゃんけんトーナメント」という大会があるものとしまして、このホームページを設計してみることにします。 この大会は、1972年より毎年開催され、都道府県別に予選が行なわれ、決勝となる全国大会でじゃんけんチャンピオンを決定するというものです。 47都道府県ですでに30回行なわれたことになりますので、地方予選のホームページは47×30=1410ページになります。 全国大会のホームページは30ページです。 ホームページには、大会の記事のほか、大会風景や優勝者の写真を載せることにします。
もっとも単純な設計は、すべてのファイルを一つのディレクトリの中に置くものです。 この場合、ファイル名が重複しないように、
などと長い名前にする必要があります。
長い名前のファイルが、一つのディレクトリに4000以上もあったのでは、とても管理しきれません。 また、それぞれのHTMLドキュメントには共通点がありませんので、再利用による作業の効率化も図れません。
そこで、まず開催年を表すディレクトリを作成します。 次に、各年のディレクトリの中に、さらに都道府県を表すディレクトリを作成します。 全国大会関係のファイルは開催年ディレクトリの中に置き、地方大会関係のファイルは都道府県ディレクトリの中に置きます。 こうしますと、ファイル名を長くしなくても重複は避けられます。
また、都道府県ディレクトリの中にはファイルが3つ、開催年ディレクトリの中にはファイルとディレクトリが50個と、把握可能な分量です。
メリットはこれだけではありません。 ホームページ作成の際、タグの再利用ができるのです。 例えば、1972年愛知県予選の記事のHTMLドキュメントには、決勝進出者と予選風景の写真を埋め込むために、
<img src="finalist.jpg"> ... <img src="scene.jpg">
というタグを使っているはずですが、これはそのまま1972年秋田県予選に使えます。
同じディレクトリにはないファイルにリンクを張るには、
<a href="path">〜</a>
という形式を用います。 ここで、pathは相対パス名です。
この場合、リンク先は一つ上の階層のファイル finals.html ですので、相対パス名は
../finals.html
です。
これをhref
属性の値としますと、そのファイルにリンクが張られます。
同じディレクトリにはない画像ファイルを埋め込むには、
<img src="path">
という形式を用います。 ここで、pathは相対パス名です。
この場合、画像ファイルはディレクトリ ehime の一つ下の階層のファイル finalist.jpg ですので、相対パス名は
ehime/finalist.jpg
です。
これをsrc
属性の値としますと、その画像ファイルがホームページに埋め込まれます。
例を参考にして、3つ(以上)の層からなる階層構造を考え、この構造が反映されるようにディレクトリを作成し、3ページ(以上)のホームページを作成してください。 階層の一つ上と一つ下に行けるように、相対パスを用いてリンクを張ってください。
東京都ガイド
東京都のお勧めスポットは杉並区です。
杉並区ガイド
杉並区は東京都にあります。 杉並区のお勧めスポットは善福寺です。
善福寺ガイド
善福寺は杉並区にあります。
今日の演習9に従ってホームページを作成し、そのファイル名をkonishi@twcu.ac.jpあてにメールで報告してください。 メールには、学生番号、氏名、科目名、授業の日付けを明記してください。