スタイルシート、アクセス制御、電子メールの転送

					2016年05月24日
情報科学類 コンピュータリテラシ

                                       筑波大学 システム情報系 情報工学域
                                       新城 靖
                                       <yas@cs.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/coins/literacy-2016/2016-05-24
あるいは、次のページから手繰っていくこともできます。
http://www.coins.tsukuba.ac.jp/~yas/
http://www.cs.tsukuba.ac.jp/~yas/

■連絡事項

■スタイルシート

HTML は、「本来は」、文書の構造を記述する。

HTML で記述できる文書の構造:

HTML では、文書の構造を記述することができるが、「表示の方法」 を記述することは、本来はでない。 ワープロは、紙に印刷した時の、このような表示の方法を設定す るためのプログラムである。

表示の方法:

表示の方法を記述するには、スタイルシートを用いる。

◆XML (eXtendible Markup Language)

XML は、タグが定義できるマークアップ言語(<−>HTMLはタグが固定)。プ ログラム間でデータの交換に用いる。

■カスケーディング・スタイルシート

◆例。青い H1 タグの見出し

H1の見出しを青くする。
<HTML>
<HEAD>
<META HTTP-EQUIV="content-type" CONTENT="text/html;charset=iso-2022-jp">
<TITLE>スタイルシートの例題:タグへの設定</TITLE>
<STYLE TYPE="text/css"><!--
H1 { color: blue; }
--></STYLE>
</HEAD>

<BODY>

<H1>青いH1の見出し</H1>

<H2>普通のH2の見出し</H2>

</BODY>
</HTML>
[表示例]

◆カスケーディング・スタイルシートで記述できること

段落書式 文字書式 箇条書き イメージ その他:

◆スタイルシートを書く場所

(1) HTML のヘッダ

<HTML>
<HEAD>
<TITLE>タイトルです。</TITLE>
<STYLE TYPE="text/css"><!--
(ここにスタイルシートを書く)
--></STYLE>
</HEAD>

(2) 別のファイル

「スタイルシートのURL」は、filename.css のようなファイル名が多い。
<HTML>
<HEAD>
<TITLE>タイトルです。</TITLE>
<LINK rel="stylesheet" type="text/css" href="スタイルシートのURL">
</HEAD>
<HTML>
<HEAD>
<TITLE>タイトルです。</TITLE>
<STYLE TYPE="text/css"><!--
@import url(スタイルシートのURL);
(別ファイルに加えてここにもスタイルシートを書くことができる)
--></STYLE>
</HEAD>

(3) HTML のタグの属性

<P STYLE="color:blue">文。文。文。</P>

◆カスケード

複数のスタイルは、混ぜられる(カスケード)。 対立する定義は、後から出てきた方が有効になる。

◆コメント

コメントとは、ある コンピュータ言語の中に記述する、人間が読むために書かれた部分。 CSS では、/**/ で括った部分がコメントとなる。 この表記法法は、C言語やJava言語と似ている。 (他の言語では、この表記法は使えないことがある。) コメントは、デバッグ時など一時的に コンピュータ言語の機能を無効にしたい時にも使える。

◆基本的な文法

次のような規則の並び
セレクタ  { 宣言;  }
セレクタ, セレクタ, ..., セレクタ { 宣言;宣言;宣言;  }
1つひとつの宣言は、次の形式。
プロパティ:式
「式」には、数、文字列、%、単位つきの長さ、URL などが書ける。

◆書式の有効範囲(セレクタ)

◆クラスの利用例

<HTML>
<HEAD>
<META HTTP-EQUIV="content-type" CONTENT="text/html;charset=iso-2022-jp">
<TITLE>スタイルシートの例題:クラスの利用</TITLE>
<STYLE TYPE="text/css"><!--
.important    { color:red; }  /* class="important" と指定したものだけ */
--></STYLE>
</HEAD>

<BODY>

<H1>普通のH1の見出し</H1>

<P>
普通のパラグラフ
</P>

<P class="important">
重要なパラグラフ
</P>

<H2>普通のH2見出し</H2>

<H2 class="important">重要な普通のH2見出し</H2>

<P>
普通の言葉。<SPAN class="important">重要な言葉。</SPAN>普通の言葉。
</P>

</BODY>
</HTML>
[表示例]

◆WWWページデザインの手順

  1. HTML で全部の表示したい内容を記述する。
  2. スタイルシートを埋め込み、見栄えを調整する。
スタイルシートをうまく活用すると、見た目を一度に調整できる。 いちいち <font> で指定すると、変更したくなった時には、 全部変えなければならない。 <span class="classname">のように、クラスを使ってマークして おけば、1個所クラスの設定を変更するだけで全部統一的に変る。 (同様に、ワード・プロセッサでも、スタイルをうまく活用したい。)

注意点

複数のブラウザ(違うバージョンも含む)で表示を確認したい。

◆CSSクラスと<DIV>タグや<SPAN>タグ

HTMLのタグ、<DIV> (division) と<SPAN> は、グルー プ化するためのタグ。<SPAN>は、1行以内の短い範囲、 <DIV>は、<P>、<H1>、 <H2>、<H3>、<H3>、<UL>、 <OL>等を含むことができる。

CSSのクラスは、しばしば <DIV>タグや<SPAN>タグとともに利用 される。

◆CSSのセレクタ

◆CSSの利用例

◆HTML/CSSにおける16進数による色の指定

HTML/CSS で色を指定する方法としては、色の名前を使う方法の他に16進数を用 いることもできる。
H1 { color: blue; }
H1 { color: #0000ff; }
http://www.w3.org/TR/html40/types.html参照。

HTML ではできないが、CSSでは、次の方法も有効。

H1 { color: rgb(0,0,255); }/* 0 から 255 */
H1 { color: rgb(0%,0%,100%); }/* 0% から 100% */

◆その他のCSSの利用例

その他、次のページが参考になる。

ファイルの属性(5月2日)

■アクセス制御

アクセス制御(access control) とは、「主体」が、「オブジェクト」を「操作」する時、どんな操作なら正し いということを定義して、それがきちんと守られていることをということを保 証することである。

図? アクセス制御における主体、オブジェクト、および、操作
図? アクセス制御における主体、オブジェクト、および、操作

Unixでは、アクセス制御の主体は、 プロセス である。 プロセスとは、コンピュータの中で実行中のプログラムのことである。 (プログラムでも、ハードディスクに保存されているものはプロセスではない。) プロセスは、利用者と対応しているので、 アクセス制御では、利用者ごとに許されたアクセスの方法を考えれば良い。

アクセス制御のオブジェクトは、ファイル、または、プロセスである。 操作には、次のようなものがある。

◆ユーザとグループ

Unix (MacOSX, Linux含む), Windows では、ユーザ(個人)とグルー プを識別したアクセス制御を行うことができる。 オペレーティング・システムごとに、ユーザやそのグループの考え方は、基本 的には似ているが、細かい所で異なる。

図? 実世界のユーザとUNIX中のプロセス・ファイル
図? 実世界のユーザとUNIX中のプロセス・ファイル

◆ユーザ

ユーザ(user, 利用者)とは、Unixの外では、個人(人間)。 Unixの内部では、次のどれかで表現する。
ユーザ名(user name)
文字列
UID(user ID, user identifier)
16ビット-32ビットの整数

Unixでは、全てのファイルやプロセスは、あるユーザの所有物である。 ファイルとプロセスには、UID が付加されている。

◆グループ

グループ(group)とは、Unixの外の世界では、計算機を使う人間の集合。 Unixの内部では、次のどれかで表現する。
グループ名(group name)
文字列
GID(Group ID, group identifier)
16ビット-32ビットの整数

1人のユーザが複数のグループに属することができる。

◆ファイルの属性

ファイルは、属性(ls -l で表示)として、UID と GID を1つずつ持つ。 ファイルの所有者となる個人は、1人。 ファイルが属するグループも1つ。

◆プロセスの属性

プロセスは、UID (1個) と GID を複数個持つ。

◆プロセスのユーザ名とグループ名を調べる

プロセスの所有者のユーザ名を表示するには whoamiコマンドを用いる。
$ whoami [←]
yas
$ []
この例では、この人(のプロセス)のユーザ名は、yas

プロセスが属しているグループのグループ名を調べるには、 groupsコマンドを用いる。

$ groups [←]
ugrad _developer netaccounts everyone com.apple.sharepoint.group.1
$ []
この例では、この人(のプロセス)は、 ugrad, _developer, netaccounts everyone, com.apple.sharepoint.group.1, という5つ のグループに属している。

idコマンドも使える。

$ id [←]
uid=1013(yas) gid=530(ugrad) groups=530(ugrad),204(_developer),62(netaccounts),12(everyone),402(com.apple.sharepoint.group.1)
$ []

◆ファイルの UID・GID 属性を調べる

ファイルの UID 属性(所有者属性)と GID 属性を調べるには、 ls -l (ファイルの場合), ls -ld (ディレクトリの場合) を用いる。
$ ls -l ~/.bashrc [←]
-rw-r--r--  1 yas  prof  450  4  8 16:14 /home/prof/yas/.bashrc
$ ls -ld ~ [←]
drwxr-xr-x  54 yas  prof  7168  5 19 14:12 /home/prof/yas
$ []
この例では、UID 属性が yas、GID 属性が prof である。

◆ファイルに対するアクセス制御

Unixでは、ファイルの「内容」のアクセス制御を次の3段階で行う。
ユーザ
ファイルのUID(所有者)が、プロセスのUIDと同じ
グループ
ファイルのGIDが、プロセスのGIDのリストのどれかと同じ
その他
上の2つに当てはまらない時
これをつかって、モード属性の下位9ビットのうち、どの3ビットを使うかを 決める。そして、そのビットが1になっていれば、その操作が許される。

ファイルの「内容」のアクセス3段階であるが、ファイルの「属性」次の2段 階である。

ユーザ
ファイルのUID(所有者)が、プロセスのUIDと同じ
それ以外
ファイルのUID(所有者)が、プロセスのUIDと異なる
ユーザの権限では、ファイルの属性(モード、グループ、時刻)を変更する ことができる。それ以外の権 限では、属性を読み出すことはできるが、変更は一切できない。 つまり、ファイルの内容がアクセスできなくても、ls -l で 属性を調べることはできる。

◆ディレクトリのxの働き

ディレクトリのモードで x は、そのディレクトリの内容を検索できることを意 味する。ディレクトリの x を落すことで、それ以下の部分木全体のアクセスを 禁止することができる。

(ホームディレクトリ以下の)ディレクトリの x を使ったファイルへの読み込み アクセスの許可と禁止。

図? /home/user2/public_html/htdocs/index.html と /home/user2/Maildir/mail1
図? ディレクトリのxの働き

ファイル /home/user2/public_html/htdocs/index.html を読むには、次のディレクト リとファイルのモードが必要になる。パスの途中で x が1つでも途絶えると、アクセ スできなくなる。
  1. / の x
  2. home の x
  3. user2 の x
  4. public_html の x
  5. htdocs の x
  6. index.html の r
ファイル /home/user2/Maildir/mail1 を読むには、次のディレクト リとファイルのモードが必要になる。パスの途中で x が1つでも途絶えると、アクセ スできなくなる。
  1. / の x
  2. home の x
  3. user2 の x
  4. Maildir の x
  5. mail1 の r

◆プロセスに対するアクセス制御

プロセスのアクセス制御は、次の2段階で行なう。
同一ユーザ
操作対象のプロセスが、操作するプロセスのUIDと一致している。
それ以外
操作対象のプロセスが、操作するプロセスのUIDと一致していない。
プロセスの操作としては、シグナルを送ることができるかどうか (kill() システムコール) と、デバッガで デバッグすることができるとか(ptrace() システムコール)、トレースを調べることができるかなどが ある。それらの操作は、同一ユーザの場合 許され、そうではない場合は、許されない。

◆スーパー・ユーザ

どのようなアクセスも可能な無敵のユーザ。

スーパー・ユーザ(super user) は、UID が 0 。 特権ユーザ(privileged user)ルート(root)su (su コマンド、あるいは super user の略)ともよばれる。 スーパーユーザのユーザ名は、慣例として root という文字列が使われる。

ファイルのバックアップなど、システム管理の作業には スーパー・ユーザの仕組みが必要になる。

ファイルの UID・GID 属性を変更する

ファイルの UID 属性(所有者属性)を変更するには、chown コマ ンドを用いる。ただし、スーパーユーザの権限が必要である。

ファイルをコピーして、元ファイルを消すことはできる。

ファイルの GID 属性を変更するには、chgrp コマンドを使う。 一般ユーザは、自分が属しているグループにのみ変更できる。 任意のグループに変更するには、スーパー・ユーザの権限が必要である。

■ファイルのモードの変更

◆chmod コマンド

chmodコマンドは、ファイルのモード属性を変更するためのコマンド。
$ ls -l file1.txt  [←]
-rw-r--r--  1 yas  prof  2  5 10 18:59 file1.txt
$ chmod go-r file1.txt  [←]
$ ls -l file1.txt  [←]
-rw-------  1 yas  prof  2  5 10 18:59 file1.txt
$ []
file1に対して、グループ(g)とそれ以外の人(o)に対して「読込み可」の許可を 取り除いている。

chmodは一般的には次の形式で実行する。

$ chmod set file1 file2 ... [←]
set の形式
[ugoa][=+-][rwx]
ここの[ugoa]は、誰に対するアクセスの設定を変更するかを対象となる人を以 下の表から選んで並べる(複数可)。
文字 単語 意味
u user ユーザ(利用者,所有者)
g group グループ
o others その他
a all 全員、ugo と同じ
[=+-]の意味
文字 意味
+ 許可を追加する
- 許可を除く
= 指定した許可だけとする
[rwxXst]の部分には次のような指定が可能。
文字 単語 意味
r read 読込み可
w write 書込み可
x execute 実行可
X execute 実行可(所有者に対して「実行可」がある時だけ)
setには[ugoa][=+-][rwx]の指定を「u=rw,og=r」のように「,」で区 切って複数並べることもできる。

chmod には、-R (recursive)オプションがある。 これは、ディレクトリをたぐり全部変更することを意味する。

◆モードの実例

rw-r--r--
誰かでも読めるファイル
rwxr-xr-x
誰かでも読めるアクセスできるディレクトリ。 xもたてる。 (たてる==ビットを1にする。)
rwxr-xr-x
実行可能ファイル
rwx------
電子メール( Maildir, Mail )、 デスクトップ( Desktop )、 ダウンロード( Downloads )、 ライブラリ( Library )、 書類( Documents )等、 他人には見せないファイルを保存するための ディレクトリのモード。
rw-r--r--
WWWページ用のファイル (~/public_html以下のファイル)
rwxr-xr-x
WWWページ用のディレクトリ (public_html以下のディレクトリ)
rwxr-xr-x または rwx--x--x
WWWページを作成する時のホーム・ディレクトリ (~~/public_html の親ディレクトリ)。 x ビットを出す。
rw-rw-r-- または rwxrwxr-x
グループで共同作業するような時には、グループに属する人には書き込みを許す。
r-xr-xr-x, r-x------
読み込み専用のディレクトリ。 その下のファイルを削除することができない。

■~/.forwardによる電子メールの転送

The Unix Super Text 25.9.1 参照メール・リーダの操作 には、受け取ったメールを他のユーザへ 転送(forward) する操作がある。 それとは別に、届いたメールをユーザの操作を介さずに自動的に他のアドレス (普通は他のホストにある別の自分の電子メール・アドレス)に転送する機能 がある。この機能を使うには、ホーム・ディレクトリの下の ~/.forward というファイルに、転送先のアドレスを書く。 たとえば、 shiro@himalaya.is.tsukuba.ac.jp に届いたメールを全て shiro@alps.is.tsukuba.ac.jp に転送したいとする。この時、 himalaya の方のホーム・ディレクトリの下の ~/.forward に次のように書く。
shiro@alps.is.tsukuba.ac.jp
単純に転送先のアドレスを書く方法では、~/.forwardが あるホストには、何も残らないが、コピーを残しながら、転送する方法もある。 それには、次のように自分のログイン名に\を付けたア ドレスを含める。
\shiro, shiro@alps.is.tsukuba.ac.jp
注意:「\」は、ASCII 「5c(16進数)」である。 「\」と表示されたり「¥」と表示されることがある。 「/」ではない。

この例では、himalaya に届いた電子メールは、himalaya と いうホストの \shiroというユーザの 配送プログラム用メール・ボックスに入り、 さらに、shiro@alps.is.tsukuba.ac.jp にも送られる。

~/.forwardにおけるループの危険性

複数のメール・アドレスがある人は、どのホストにログインした時にも、全部 のホストに届いた電子メールが読める状態にしたいと思うかもしれない。 上の例では、 alps にログインした時にも、 alpshimalaya の両方のメールが読め、 また、himalaya にログインしてもやはり alpshimalaya の両方のメールが読める と便利に思えるかもしれない。しかし、こうすることは技術的に難しいので、 しばらくはあきらめて欲しい。

\loginnameの機能をつかっても、なかなかうまくいかない。 たとえば、次のよう な ~/.forward を作成したと考える。(実際に実行すると危険なので、 考えるだけする。)

(alps:~/.forward)
\shiro, shiro@himalaya.is.tsukuba.ac.jp
(himalaya:~/.forward)
\shiro, shiro@alps.is.tsukuba.ac.jp
この状態で、shiro@alps.is.tsukuba.ac.jp にメールが届いた 場合、次のようなことが起る。
  1. alps にコピーが残され、かつ、 shiro@himalaya.is.tsukuba.ac.jp に送らる。
  2. himalaya では、やはり、コピーが残され(ここまでは順調)、 さらに、shiro@alps.is.tsukuba.ac.jp に送られる(!)。
  3. alps では、コピーが残され(2回目)、himalaya に送られる。
  4. himalaya では、コピーが残され(2回目)、 さらに、shiro@alps.is.tsukuba.ac.jp に送られる。
  5. alps では、コピーが残され(3回目)、himalaya に送られる。
  6. himalaya では、コピーが残され(3回目)、 さらに、shiro@alps.is.tsukuba.ac.jp に送られる。
  7. alps では、コピーが残され(4回目)、himalaya に送られる。
  8. himalaya では、コピーが残され(4回目)、 さらに、shiro@alps.is.tsukuba.ac.jp に送られる。
  9. ...
このような電子メールのピンポンが、永遠に続く。実際には、電子メールの転 送には上限が設定されているので、その上限に達した段階でエラーになって止 る。

3ヵ所以上でこの設定をしたとすると、中継される度にメールが増殖する。

\loginname の機能を使っていなかったとすると、コピーは 残らないが、メールが行き来するだけで、どこにも届けられずにエラーになる。

~/.forward の設定をしたら、必ず自分で自分あてに電子メールを出 して届くかテストすること。~/.forward の設定を間違えると、エラー のメールも届かなくなるので、エラーが起こっていることさえわからなくなる。

~/.forward の機能は、もともとは、sendmail という種類のMTA の機 能である。他の MTA (qmail, postfix)でも使えるように設定していることが多い。

■実習

実習時間中には、 以下の課題をできるだけ多く行いなさい。全部を行う必要はない。

★練習問題(1001) ことえりのバックスラッシュ入力

手引き 6.2 参照

次のようにして、「ことえり」の設定を確認しなさい。そして、キーボードの 「¥」でバックスラッシュが入力されるように設定しなさい。

★練習問題(1002) .forwardの設定と確認

この練習問題をする前に、必ず ~/.forwardによる電子メールの転送 を読み、働きと危険性を理解しなさい。失敗すると、電子メールが失われたり、 メールサーバに過大の負荷をかけることになる。

coins 以外に日常的に読み書きするメール・アカウントがある人は、毎日 coins に届いたメールを確認する方法として~/.forward を設定して、転送する 方法が考えられる。そのようにしたい人は、そうしなさい。

~/.forward は、emacs でテキスト・ファイルとして作成するとよい。

$ emacs ~/.forward [←]
$ cat ~/.forward [←]
\s1654321, myaddr@xxx.yyy.zzz
(これは一例なので真似しないように)
$ []
設定が完了したら、必ず自分自身の coins のアドレス (例えば学生番号が 201654321 なら s1654321@coins.tsukuba.ac.jp)にメールを書き、次のことを 確認しなさい。

★練習問題(1003) Firefoxのウィンドウ

Firefox で複数のページを同時に表示するには、ウィンドウが便利である。た とえば、講義のページを表示しながら、自分が作成中のページを表示する時に、 この機能を使うと便利である。このことを確認しなさい。
  1. 「ファイル」メニューから「新規ウィンドウ」を選ぶ

★練習問題(1004) Firefoxのタブ

Firefox で複数のページを同時に(切り替えながら)表示するには、タブが便 利である。このことを確認しなさい。
  1. 「ファイル」メニューから「新規タブ」を選ぶ
  2. タブを切り替えるには、ウィンドウの上部にあるタブのタイトルの部分を クリックする。

★練習問題(1005) CSSの観察

自分がよく見る WWW ページについて、スタイルシートが使われているかを観察 しなさい。 Firefoxブラウザを操作して、元の HTML (ソース)を表示させなさい。
  1. 観察したいページを開く。
  2. ページのソースを表示する。
  3. 「表示」メニューから「ページのソース」を選ぶ。
  4. HTML の記述の上部の <head> の中に<style>や <link rel="stylesheet" ..>の記述がないかを調べる。

★練習問題(1006) 学類コンピューティング環境が利用しているCSS観察

学類コンピューティング環境 のページ で利用されているスタイルシートを表示しなさい。そして、どのよ うな機能が利用されているかを調べなさい。
  1. http://www.coins.tsukuba.ac.jp/ce/,学類コンピューティング環境 のページ を開く
  2. ページのソースを表示する。
  3. <head>にある <link rel="stylesheet"...> の href を得る。 これは、 相対形式 になっている。 ( "skin/pukiwiki_gs2.css.php?charset=Shift_JIS&amp;gs2color=" )
  4. これに、元のページの URL を合わせて、 絶対形式 に変換する。 http://www.coins.tsukuba.ac.jp/ce/"skin/pukiwiki_gs2.css.php?charset=Shift_JIS&amp;gs2color=" を合わせて
    http://www.coins.tsukuba.ac.jp/ce/skin/pukiwiki_gs2.css.php?charset=Shift_JIS&gs2color= となる。
  5. こうして得られた URL を、Web ブラウザのURL が表示されている所(ロケー ション・バー) に打ち込み、リターンキー(エンターキー)を押す。

★練習問題(1007) スタイルシートの記述(タグ)

授業で用いた例題 「 例。青い H1 タグの見出し 」 のソースを表示しなさい。 ヘッダにある次のような記述を確認しなさい。
<STYLE TYPE="text/css"><!--
H1 { color: blue; }
--></STYLE>
この記述を、自分自身が作成した HTML ファイルに含めてみなさい。 自分自身が作成した HTML ファイルで、H1 タグを使っていない人は、 他のタグを変更しなさい。

★練習問題(1008) スタイルシートの記述(クラス)

授業で用いた例題 「 クラスの利用例 」 のソースを表示しなさい。 ヘッダにある次のような記述を確認しなさい。
<STYLE TYPE="text/css"><!--
.important    { color:red; }  /* class="important" と指定したものだけ */
--></STYLE>
この記述を、自分自身が作成した HTML ファイルに含めてみなさい。 さらに、次のように、タグに class 属性を加えてみなさい。
<P class="important">
...
<H2 class="important">重要な普通のH2見出し</H2>
...
<SPAN class="important">重要な言葉。</SPAN>

★練習問題(1009) whoami,groups,idコマンド

whoami, groups, idコマンドを使って、プロセス(シェル)のUID, GID, groups 属性を表示しなさい。
$ id [←]
$ whoami [←]
$ groups [←]

★練習問題(1010) 他人から読み書き可能な自分のファイル

ルートからホームディレクトリにいたる間でのディレクトリのモードを調べな さい。
$ echo ~ [←]
$ ls -ld / [←]
$ ls -ld /home [←]
$ ls -ld /home/ugrad/ [←]
・・・中略・・・
$ ls -ld  ~ [←]
ディレクトリ ~/public_html, ~/public_html/htdocs や ~/public_html/index.html のモードを調べな さい。
$ ls -ld ~/public_html [←]
$ ls -ld ~/public_html/htdocs [←]
$ ls -l  ~/public_html/htdocs/index.html [←]
他の人(WWWページとして公開するために、WWWサーバ・プロセスからのアクセ スも含む)がアクセスしようとしたらどうなるかを考察しなさい。

その他に、次のファイルやディレクトリのモードを調べなさい。

★練習問題(1011) 自分が読み書き可能な他人のファイル

他人のファイルで、内容を読む事ができるファイルを読みなさい。 たとえば、新城のファイルを読むには次のようにする。
$ cd ~yas [←]
$ ls -l [←]
$ ls -l literacy-a* [←]
$ lv literacy-a2.txt [←]
$ lv literacy-a3.txt [←]
$ []

★練習問題(1012) アクセス不可能な他人のファイル

他人のファイルで、内容を読む事がでないファイルを読もうとしてみなさい。  たとえば、新城のファイルを読もうとするには次のようにする。
$ cd ~yas [←]
$ ls -l [←]
$ ls -l literacy-a* [←]
$ lv literacy-a4.txt [←]
$ lv literacy-a5.txt [←]
$ []

★練習問題(1013) psとkillコマンド復習

ps コマンドと kill コマンド、grep コマンド、lv コマンドの使い方を復習しなさい。

★練習問題(1014) 他人のプロセスのkill

ps コマンド、grep コマンド、lv コマンド等で、他人のプロセスの PID を調 べなさい。その PID を使って、他人のプロセスを kill してみなさい。その結 果、そのプロセスがどうなるかを調べなさい。

★練習問題(1015) chmod コマンド

chmod コマンドで、ファイルやディレクトリのモードを変更しなさい。 以下の例は、file1に対して、グループ(g)とそれ以外の人(o)に対して「読込み 可」の許可を取り除いている。
$ ls -l file1.txt  [←]
-rw-r--r--  1 yas  prof  2  5 10 18:59 file1.txt
$ chmod go-r file1.txt  [←]
$ ls -l file1.txt  [←]
-rw-------  1 yas  prof  2  5 10 18:59 file1.txt
$ []
go-r を含めて、様々なモードの設定方法がある。 次の設定方法の意味を確認しなさい。

★練習問題(1016) WWWページのファイルのモード

WWW ページとして公開するファイルのモードはその他(others)に対するアクセ ス許可で r ビットが立っている必要がある。もし、このビットを chmod o-r で落した場合、Web ブラウザでアクセスできなくなる。このことを確かめなさ い。

$ cp sample1.html sample2.html  [←]
<アクセス制御のテスト用のファイルを cp コマンドで作成する。>
$ ls -l sample2.html  [←]
-rw-r--r--  1 yas  prof  408  5 18 11:11 sample2.html
<Firefoxでアクセス、再読み込み等>
$ chmod o-r sample2.html  [←]
$ ls -l sample2.html  [←]
-rw-r-----  1 yas  prof  408  5 18 11:11 sample2.html
<Firefoxでアクセス、再読み込み等>
$ chmod o+r sample2.html  [←]
$ ls -l sample2.html  [←]
-rw-r--r--  1 yas  prof  408  5 18 11:11 sample2.html
<Firefoxでアクセス、再読み込み等>
$ []

同様に、ディレクトリを作成し、その他(others)に対する x ビットを立てたり 落したりしながら、その効果を確認しなさい。

$ cd ~/public_html/htdocs [←]
$ mkdir dir1 [←]
$ emacs dir1/file1.html [←]
$ ls -ld dir1 [←]
$ ls -l dir1/file1.html [←]
<Firefoxでアクセス、再読み込み等>
$ chmod o-x dir1 [←]
$ ls -ld dir1 [←]
<Firefoxでアクセス、再読み込み等>

★練習問題(1017) 8進数を利用したchmodコマンド

chmod コマンドは、モードを8進数で与えることもできる。 このことを man で確認しなさい。また、利用してみなさい。 8進数で指定することの利点を考えなさい。

★練習問題(1018) chgrp コマンド

chgrp コマンドで、ファイルやディレクトリのGID属性を変更しなさい。
$ ls -l file1.txt [←]
(ファイルのグループの表示)
$ id [←]
(自分(プロセス)が属しているグループの表示)
$ chgrp グループ file1.txt [←]
$ ls -l file1.txt [←]
(ファイルのグループの表示)
$ []
まず、適当な内容を持つテキスト・ファイルを作成しなさい。
$ echo hello > file1 [←]
$ ls -l file1 [←]
-rw-r--r--  1 yas  prof  6  5 23 22:28 file1
$ cat file1 [←]
hello
$ []
そして、次のような要求を満たすように chmod コマンドを使ってモードを変更 しなさい。提出するファイルには、chmod コマンドをどのように利用したか、 また、その結果 ls -l の表示がどのようになったかを含めなさい。

★練習問題(1019) mkdirとchmodによる drop box ディレクトリの実装

同じコンピュータ(ファイルサーバ)を共有しているユーザ間で秘密のファイ ルを受け渡しする方法として、受信側のディレクトリに drop box となる ディレクトリを作成する方法がある。このディレクトリは、 次のようなモードを持つ。
$ ls -ld dropbox [←]
drwx-wx-wx  2 yas  prof  80  5 19 15:28 dropbox
$ []
送信側は、受信者が読めるモードで、ファイルを作成し、受信者の drop box ディレクトリの下にコピーする。
$ emacs file-2016-05-24.text [←]
$ ls -l file-2016-05-24.text  [←]
-rw-r--r--  1 yas  prof  56353  5 19 15:38 file-2016-05-24.text
$ cp file-2016-05-24.text ~user/dropbox [←]
$ []
送信者は、このディレクトリから目的の取り出す。cp コマンド等でファイルを コピーし、元のファイルを rm コマンド等で削除する。

このような drop box を用いて、隣の人、あるいは、その他の友人にファイルを渡しなさい。 同様に、ファイルを受け取りなさい。

$ ls -l file-2016-05-24.text  [←]
-rw-r--r--  1 yas  prof  56353  5 19 15:38 file-2016-05-24.text
$ cp file-2016-05-24.text ~ [←]
$ rm file-2016-05-24.text [←]

注意: Mac OS X では、このディレクトリは標準で ~/Public/Drop Box という名前のディレクトリを用いる。名前に空白が含まれていることに注 意しなさい。このディレクトリの使い方は、次のページに書かれている。

coins では、このディレクトリ~/Public/Drop Box は、自動的には作 成されない。この練習問題では、このディレクトリを用いても良いし、他の名 前のディレクトリでもよい。

注意: この練習問題では、 インターネット上のファイル・サービス https://www.dropbox.com/ を用いない。

★練習問題(1020) mkdirとchmodによる drop box ディレクトリの実装(2)

この drop box の使い方では、ファイル名として予測 可能なものを用いた場合、本来の受信者だけでなく、その他のユーザがファイ ルをアクセスすることも可能である。どのようにすれば、アクセスできるのか を説明しなさい。

他の人へのアクセスを防ぐ方法として、ファイル名に乱数(予測されない文字 列)を含める方法がある。この方法を練習してみなさい。

なお、cp コマンド等でコピーした場合には、ps コマンドで引数が表示される ことがある。このことを確認しなさい。ファイル名を秘匿してdrop box に書き 込む時には、ps で表示されない方法を使う必要がある。その方法を考えなさい。

★練習問題(1021) ディレクトリのGIDの伝播

UIDとGIDの伝播を確認しなさい。 /tmp など、誰でも書き込みできる場所にファイルを作成すると、その ファイルの UID 属性はどうなるか調べなさい。新たに実験用のディレクトリを mkdir コマンドで作成しなさい。そのディレクトリのGID属性を chgrp で変更 し、その中に新たなファイルやディレクトリを作成したら、その GID がどう設 定されるかを確かめなさい。また、既存のファイルをmv コマンドで移動したら どうなるかを調べなさい。

■課題10 スタイルシート、アクセス制御、電子メールの転送

以下の問題、および、回答をテキスト・ファイルに記述し、 レポート提出ページから提出しなさい。

(1) 電子メールの転送について、当てはまる行の先頭に yes, 当てはまらない 行の先頭に no と記述しなさい。

(a) coins 以外に電子メールのアカウントがある。
(b) coins のメールを毎日読む。
(c) ~/.forward の機能を理解した。
(d) ~/.forward を設定した。
~/.forward を設定した人は、その内容を insert-file 等でレポートに含めなさい。 練習問題 .forwardの設定と確認 参照。

(2) 情報科学類の学生は、coinsに届いたメールを毎日確認する必要がある。あ なた自身がどのようにして毎日確認するかを書きなさい。

(3) 自分のホーム・ディレクトリとその下にあるファイルについて、次のこと を行いなさい。

  1. ホームディレクトリのモードを ls -ld で表示しなさい。
    $ ls -ld ~ [←]
    
  2. ホーム・ディレクトリの次の属性を示しなさい。
  3. ホームディレクト以下に、次のようなモード rw-r--r-- のファイル file524.txt が存在したとする。(課題のためにこのようなファイルを作成し ても良い。作成しないで考えるだけでも良い。)
    $ cd ~ [←]
    $ ls -l file524.txt [←]
    -rw-r--r--  1 s1654321  ugrad  4  5 20 10:43 file524.txt
    $ []
    
    このファイルを、coins の「他の利用者」が cat コマンドで読み出そうとした 時に何がおきると考えられるか。簡単に答えなさい。(実際に他の利用者に試 してもらって良い。考えるだけで実際には試さなくても良い。)
    (他の人の操作)
    $ cd ~s1654321 [←]
    $ ls -l file524.txt [←]
    -rw-r--r--  1 s1654321  ugrad  4  5 20 10:43 file524.txt
    $ cat file524.txt [←]
    
  4. このファイルを、coins の「他の利用者」が emacs コマンドで内容を修 正して C-x C-s で保存しよとした時に何がおきると考えられるか。簡単に答え なさい。(実際に他の利用者に試してもらって良い。考えるだけで実際には試 さなくても良い。)
    (他の人の操作)
    $ cd ~s1654321 [←]
    $ ls -l file524.txt [←]
    -rw-r--r--  1 s1654321  ugrad  4  5 20 10:43 file524.txt
    $ emacs file524.txt [←]
    
  5. このファイル file524.txt と同じモードのファイルが、自分のホームディ レクトリにあるか ls -l で調べなさい。あれば、その例を1個以上、5個以内で 答えなさい。なければ無いと答えなさい。

    調べるには、ls -l コマンドとlv コ マンド、grep コマンドを使う方法もある。

    $ ls -l | lv [←]
    $ ls -l | grep rw-r--r-- [←]
    
  6. このファイル file524.txt のモードを変更して、他のcoins の「他の利用者」 が cat コマンドで読み出そうとしても、エラーになり読めないように変更したい。
    (他の人の操作)
    $ cd ~s1654321 [←]
    $ cat file524.txt [←]
    cat: file524.txt: Permission denied
    $ []
    
    ただし、自分自身は、読み込みもでき、書き込みもできる状態を保ちたい。最 終的には、どのようなモードになるか。ls -l の表示の形式で答えなさい。 (r,w,x,- の9文字で答えなさい。)
  7. このファイル file524.txt のモードを、chmod コマンドを使って 6. の ように変更したい。chmod コマンドをどのように実行すれば良いか答えなさい。
    $ chmod 回答 [←]
    $ ls -l file524.txt [←]
    (確認)
    $ []
    
練習問題 chmod コマンド 参照。

(4) HTML と CSS で次のような条件を満たす WWW ページを作成しなさい。

  1. 課題9(1)の条件を すべて満たす。(同じページを、提出してもよい。)
  2. 2つ以上のタグのスタイルを変更する。そのうち1つ以上は、class を使う。
  3. 同じ class のスタイルを、2個所以上で利用する。 2カ所としては、1つのHTML文書の内部でもよく、また複数の HTML 文書に またがっていてもよい。
作成した WWW ページの URL (http:// から始まるもの)をレポートに含めなさい。 なお、この提出する WWW ページは、 ホーム・ページでな くともよい。

練習問題 スタイルシートの記述(タグ)練習問題 スタイルシートの記述(クラス)参照

(5) The Unix Super Text の次の部分を読みなさい。

そして、項目についてついて調べて、簡単に説明しなさい。

(6) [加点] (6) で、このページの説明の範囲を超えたスタイルシートの機能を 3つ以上、利用しなさい。そして、各機能の説明、どこに利用しているか、およ び、その機能の有用性を書きなさい。( CSSの利用 例や、その他のCSSの利用例で紹介されてい るものを利用してもよい。)

(9) [加点] 練習問題 mkdirとchmodによる drop box ディレクトリの実装(2)を行いなさい。次の結果をレポートに含めなさい。

注意: この課題で用いるものは、 インターネット上のファイル・サービス https://www.dropbox.com/ を用いるものではない。


Last updated: 2016/05/24 17:07:55
Yasushi Shinjo / <yas@cs.tsukuba.ac.jp>