2007年06月19日
情報科学類 コンピュータリテラシ
                                       筑波大学 システム情報工学研究科 
                                       コンピュータサイエンス専攻, 電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
	http://www.coins.tsukuba.ac.jp/~yas/coins/literacy-2007/2007-06-19
あるいは、次のページから手繰っていくこともできます。
	http://www.coins.tsukuba.ac.jp/~yas/
	http://www.cs.tsukuba.ac.jp/~yas/
-  Unix Super Text  「第32章 正規表現」、「第33章 検索と置換」、
「第28章 World Wide Web」参考。
 -  次回6月22日金曜日は、実習室 3C113 に集合。
 -  手引き(教育用計算機システム使用の手引き)を持って来る。
 -  Unix Super Text の次の場所を読んでくる。
上巻  11.8 節、30章、39章
 
6月29日は、筆記試験を行う。A4メモ用紙、1ページ(両面)持込み可能とす
る。紙の表面上部に学籍番号と名前を記入すること。圧縮、暗号化をしないこ
と。試験との答案といっしょに提出する。メモが不要な場合には、学籍番号と
名前を記入したもを提出する。
Rubyの作者、まつもとゆきひろさんによる集中講義がある。
-  日時: 7月17日(火)-18日(水), 10:00-
 -  場所: 3L201
 -  科目名: 計算機システム特別講義IA (情報学類)
 -  科目番号: L51 2511
 -  単位数: 1単位
 -  申請期間: 7月2日まで (Twins で登録)
 -  世話人: 新城
 
grep コマンド、
Emacs 文字列の置換え、
-  文字列の集合を表す方法。対象となる文字列と適合するかしないか(マッチング)を行い、
適合するものだけを取り出す/適合しないものだけを取り出す。
 -  検索や置換えで使う
 -  オートマトン理論や言語理論に基づいた高速な実現方法がある
 -  単なる「ワイルドカード」よりも、高い表現能力を持つ
 
単純な検索
-  完全一致/部分一致/前方一致/後方一致
 -  単なるワイルドカード(*)。1カ所だけにに使える。複数箇所にはつかえない。
たとえば、「a*b*c」とは書けない。
 
正規表現の例:「^a.*tion$」。「aで始まり、tionで終わるもの」。
「^」、「.」、「*」、「$」 は、
メタキャラクタ。特別の意味を持つ。
メタキャラクタを含まない文字列も、正規表現として意味を持つ。
種類
-  grep系
 -  grep, ed, vi, ex, sed, less (lv)
 -  egrep系
 -  egrep, awk
 -  Emacs
 -  emacs
 -  シェル系
 -  csh, tcsh, sh
 -  その他
 -  Perl, Ruby, Apache, ....
 
シェルの「*,?,[]」などは、単にワイルドカードではなく、正規表現に
近い。複数の場所に「*」が書けるので、単なるワイルドカードではな
い。
grep は、文字列を検索するコマンド。
grep使われている正規表現
-  
\ 
 -  続く文字(メタキャラクタ)の意味をなくす
 -  
^
 -  行の先頭。(
[]の中で使われたときには否定の意味)
 -  
$
 -  行の終わり
 -  
.
 -  任意の1文字
 -  
[c1c2c...cn]
 -  
c1c2c...cn のどれか。
     例:[abc]ならaかbかcのどれか。
 -  
[c1-c2]
 -  
c1からc2 の範囲のどれか。
     例:[a-z]ならaからzまでのアルファベットの小文字。
 -  
[^c1c2c...cn]
 -  並べられた文字以外。
     例:
[^abc]ならaでもなくbでもなくcでもないもの。
 -  正規表現
*
 -  直前の「正規表現」の任意の繰り返し。
     例:
.*なら任意の文字の任意回数の繰り返し。
[a-z]*ならアルファベット小文字の任意回数の繰り返し。
 -  正規表現1正規表現2
 -  正規表現1に続き正規表現2が続く
     例:
abなら、「a」に続き「b」。
 -  
\(正規表現\)
 -  タグ付き正規表現。
     例: 
X\(abc\)*X は、XabcabcXにマッチする。
 -  
\N
 -  N番目のタグ付き正規表現。
     例: 
X\(abc\)\1X は、XabcabcXにマッチする。
 -  
\<
 -  単語の先頭。vi, ex のみ。
 -  
\>
 -  単語の終わり。vi, ex のみ。
 
| 正規表現 | 	マッチする例 | 	マッチしない例 | 
| abc | 	abc, abcd | 	ab | 
| \\abc   | 	\abc, \abcd   | 	\ab  | 
| a.c | 	aac, abc, xabc | 	ac, a, c,  | 
| a*c | 	c, ac, axc, aaac, xc | 	a | 
| [abc]x | 	ax, bx, XaxX | 	  dx | 
| [^abc]x | 	dx, ex | 	bx, Xbx, abx | 
言語理論で定義された正規表現のうち、grep では使えなかったものがが使えるようになった。
ただし、一部、grep よりも落ちる。
-  
正規表現+
 -  
正規表現の1回以上の繰り返し。「正規表現 正規表現*」と同じ。
 -  
正規表現?
 -  
正規表現が0回、または、1回。
 -  
正規表現1|正規表現2
 -  
正規表現1かまたは正規表現2。orの意味。
 -  
(正規表現)
 -  
正規表現のグループ化。
 
タグ付き正規表現\(\)やその参照\Nは廃止された。
grep系、egrep系の組み合わせ。|の意味が違い、egrepで
|と書く所、Emacs では
\|と書く。egrep で
\|と書く所では、Emacs では|でよい。
-  
正規表現1\|正規表現2
 -  
正規表現1かまたは正規表現2。orの意味。
 -  
\`
 -  バッファの先頭
 -  
\'
 -  バッファの最後
 -  
\w
 -  単語
 -  
\W
 -  単語以外
 -  
\b
 -  単語の先頭、または、単語の末尾
 -  
\B
 -  「単語の先頭および単語の末尾」以外
 
バッファとは、Emacs でメ
モリを抽象化したもの。ファイルの内容を読み込み、編集できる。保存しない
と失われる。
-  テキスト・エディタ
 -  ストリーム・エディタ
 -  grep, egrep
 -  ページャ lv, less
 -  find
 -  MacOSX Finder
 -  id-utils mkid, lid, gid, The Unix Super Text 59.8.3項 参照。
名前(identifier, 変数名や関数名)を高速に検索できる。
 -  Emacs etags, The Unix Super Text 19.4.2項 参照。
関数を呼び出していたら、定義の場所にジャンプできる。
 -  ctags + vi 
 
 | 	通常(一括) | 	インクリメンタル | 
| 正規表現なし | 	search-forward | 	isearch-forward | 
| 正規表現付き | 	search-forward-regexp | 	isearch-forward-regexp | 
方向は、-forward 以外に -backward がある。
C-r             isearch-backward
C-s             isearch-forward
C-M-r           isearch-backward-regexp
C-M-s           isearch-forward-regexp
C-M-s は、Esc C-s, C-M-r は、Esc C-r と同じ。
 | 	一括 | 	問合せ付き | 
| 正規表現なし | 	replace-string | 	query-replace | 
| 正規表現付き | 	replace-regexp | 	query-replace-regexp | 
M-%             query-replace
C-M-%           query-replace-regexp
The Unix Super Text 33.1.3節 参照。
-  grep
 -  正規表現での検索。
 -  egrep
 -  正規表現での検索。
+,?,|,() が使える。
 -  fgrep
 -  文字列での検索。正規表現は使えない。
 -  sed
 -  正規表現での検索(pコマンド)。
 -  awk
 -  正規表現での検索(printコマンド)。
+,?,|,() が使える。。
 
-  sed
 -  正規表現での検索と、マッチした部分の参照。
 
awk で、正規表現で行を検索した後、printf() や substr() による非正規表現で
の置換えができる。
スクリプト言語によるプログラムを書き、検索と置換えを行うことができる。
Ruby や Perl などのスクリプト言語の1行プログラミング(one liner)も便利
である。
Unix の find コマンドは、ディレクトリ木をたどりながらファイルを検索する
ことができる。
The Unix Super Text 33.1.5項 参照。
注意点
-  処理が重たい(コンピュータに負担をかける)。
複数人で共有しているコンピュータ時に find を実行する時には、慎重に行う。
共有には、ファイル・サーバを含む。
 
シェルに対するコマンドで正規表現を打つときには、メタキャラクタの衝突に
気をつける。
正規表現で使うメタキャラクタと
シェルのメタキャラクタが重なっている。
シェルが正規表現の「$」や「*」を解釈しないように、
シングルクォート「''」でくくるなどして、エスケープする。
セキュリティとは、安全や機密を保持すること。
対策
-  ローカル
 -  遠隔のコンピュータ
-  悪意を持つクライアント
 -  悪意を持つサーバ
 -  悪意を持つpeer
 
 
コンピュータ・ウイルス(狭義)は、悪意があるプログラム一種で、次のような
性質を持つもの。
-  他のプログラムに寄生する
 -  悪さをする
 -  自分自身のコピーを広げようとする
 
活動
トロイの木馬(Trojan Horse)は、単独のプログラムであり、他のプログラムに
寄生しない。利用者を騙して実行されるのを待つ。
ワーム(worm)は、他のプログラムに寄生しない。
世の中で「ウイルス」と呼んでいるものの中には、トロイやワームに分類され
るものが多い。
ファイルや電子メールの内容を調べて、悪意のあるプログラムに特徴的なパタ
ンを探し、削除する。
限界
-  パタンに含まれていない悪意のあるプログラムを見逃す。
-  パタンファイルが古い場合
 -  新しいプログラムでパタンファイルに未登録のもの
 
 -  使っているプログラムのバクには対応できない。
 
プログラムからバグ(誤り)を全てのバグを取り除くことはできない。
バグの一部は、セキュリティ的な脆弱性につながる。
悪意のあるプログラムの多くは、セキュリティ的な脆弱性を攻撃する。
-  バッファ・オーバーフロー攻撃
 -  クロスサイト・スクリプティング攻撃
 -  DoS (Denial of Service) 攻撃、分散型DoS攻撃
 
「危険なデフォルト」は、本来の機能を有効にしたものなので、バグではない
が、利用者が気が付かないと攻撃の対象になる。
プログラムの脆弱性をつく攻撃の1つ。
現在のコンピュータは、機械語命令もデータも同じメモリに保存する。
データを機械語命令だと解釈して実行することができる。
悪意を持つプログラムが送られて来た場合、本来はデータとして扱わなければ
ならないのに、脆弱性があるプログラムは機械語命令として解釈して制御を移
して実行してしまう。
サーバにある種の要求を送ることで、本来のサーバの機能を停止させてしまう
攻撃。サービス運用妨害、サービス拒否攻撃ともいう。
分類
-  バッファ・オーバーフロー等の脆弱性をついてサーバ・プログラムを
終了させてしまうもの
 -  大量に要求をサーバに送ることで、他の正当なクライアントに対する
サービスができないようにする。
 
後者を防ぐことは、難しい。後者で、要求を送るプログラムが1つではなく、
複数のクライアントが協調して1つのサーバを攻撃する場合、分散型DoS攻撃
という。
攻撃対象としては、サーバ(WWWサーバ、メール・サーバ)の他に、ルー
タであることもある。
ローカルで働く悪意があるプログラムによる被害を
を防ぐには、ローカルへの侵入を水際で止める。
-  ローカルのプログラム
-  水際で防ぐ。特にトロイの木馬を入れないようにする。一度入られたら対策は難しい。
 -  リファレンスモニタによりプログラムの実行を監視する。
疑わしい活動を検出したらプログラムの実行を停止する。
 
 -  遠隔のコンピュータから送られてくるメッセージ
-  遠隔からの送られてくるメッセージを疑ってかかる。
 -  通信相手のプログラムの場所により権限を変える。
 -  通信相手のプログラムに付けられたディジタル署名により権限を変える。
 
 
弱い権限で動作させると、万一の時の被害を最小にできる。
遠隔のコンピュータ
-  悪意を持つクライアントからサーバを守る
 -  悪意を持つサーバからクライアントを守る
 -  第三のサーバ(クロスサイトスクリプティング攻撃)からクライアントを守る
 
技術者や管理者に求められていること。
技術が未熟な現在、各個人は、ある程度、技術を知る必要がある。
-  キャッシュ
 -  cookie
 -  クロスサイトスクリプティング攻撃
 -  サーバ上のファイルのアクセス権に気を付ける。
 -  よいパスワードを使う
 -  暗号を使う
 -  大事なデータを、インターネットに接続されたコンピュータには置かない。
 -  大事なデータを、電子メールで送らない。
 
対策
-  自分が使っているプログラムを最新のものにする。知られている脆弱性を
つぶす。
 -  付加的な追加プログラムを適切に使う。ただしそれだけに頼ってはいけない。
 
防火壁とは、外部のネットワークと内部のネットワークの間に設置し、内部の
ネットワークのセキュリティを高めるための仕組み。
インターネットの仕組みの基本:どのコンピュータとコンピュータも通信できる。
防火壁では、そのような本来の仕組みに制限を設け、特定のコンピュータとし
か通信できないようにしたり、特定のサービスしかつかえないようにする。
攻撃の対象となるコンピュータの数を減らし、集中的に侵入対策を施すことで、
セキュリティを高める。
防火壁構築は、様々な技術の集合:
-  パケット・フィルタリング
 -  IPアドレスやポート番号を使ってTCP/IP の特定のサービスを特定の方向
について遮断する。アクセス制御の一種。
例:ファイアウォールの内側から外側への電子メールの送信は許すが、逆方向
は許さない。
 -  プライベート・アドレスの利用
 -  壁の内側で、プライベート・アドレスと呼ばれる、インターネット上で
は決して利用されないことが保証されているIPアドレスを用いる。プライベー
ト・アドレスを使うと、インターネットの外から直接攻撃されることはない。
壁の外側をアクセスする時に、「壁の上」で、外でも通じるIPアドレスに付け
変える。
 -  電子メールのフィルタリング
 -  電子メールの内容をパタンマッチ等で検索し、悪意があるプログラムを
発見したら削除する。
 
壁の上:壁の内側のコンピュータも壁の外側ののコンピュータも、両方にアクセ
スできる場所。
ファイルに対するアクセス制御と
考え方が共通の部分と異なる部分がある。
[再掲]
アクセス制御(access control)
とは、「主体」が、「オブジェクト」を「操作」する時、どんな操作なら正し
いということを定義して、それがきちんと守られていることをということを保
証することである。
図? アクセス制御における主体、オブジェクト、および、操作
WWWは、もともと大勢の人にメッセージを伝えるための仕組みだが、後付けでア
クセス制御の仕組みを入れた。
あるページは、ある特定の人(同じ研究室・部署の人)だけにしか見えないよ
うに設定することもできる。
-  主体
 - 
-  クライアントが動作しているホストの IP アドレスやドメイン名
 -  ユーザ名とパスワードで識別したユーザ
 -  公開鍵暗号系で特定の秘密鍵を所有しているユーザ
 
 -  オブジェクト
 -  URLで表現できるもの。木構造を利用した指定や正規表現による指定も可能。
 -  操作
 - 
-  データを取得(GET)
 -  データを送る(POST)
 -  その他
 
 
アクセス制御の設定は、普通は、オブジェクト側でなされる。
access.conf は空で、全部 httpd.conf に書くことも多い。
サーバの管理者は、.htaccess を無効にもできる。
coins では、orchid-nwd の次の場所にある。
-  
/opt/apache2/conf/httpd.conf
 -  
/sw/etc/apache2/httpd.conf
 
httpd.conf や .htaccess に次のように記述する。
order deny,allow
deny from all
allow from 130.158.0.0/16 133.51.0.0/16 192.50.17.0/24
主体は、IP アドレスで指定されたクライアント・コンピュータ。
WWW ブラウザが1つのページをアクセスするたびに HTTP のヘッダにユーザ名
とパスワードを含める。
GET /dir1/file1.html HTTP/1.1
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Authorization: には、ユーザが打ち込んだユーザ名とパスワードが
Base64 (64進数)で符合化されて含まれている。Base64 は、暗号ではないので、
簡単に元にもどせる。
% echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | openssl base64 -d 
Aladdin:open sesame% 
% 
Basic 認証では、パスワードがそのままネットワークを流れてしまう。
この問題点を解消するために、SSL で通信路を暗号化することがよく行われる。
ユーザ名とパスワードの対応を保存する方法にはいくつかの方法がある。
-  LDAP を使い、Unix やメール・サーバへのログインで使うパスワードと同じにする。
 -  htpasswd コマンドを使い、独自に管理する。
 -  dbmmanage を使い、独自に管理する。
 -  その他
 
cookieは、コンピュータ・サイエンス(情報学類)の専門用語。
協調して動作しているプログラムの間で、ある一連の作業を識別するための数
を意味する。
WWW(World Wide Web)では、1回のデータ転送ごとに通信路が切断される
ので、通常はWWWのブラウザ(クライアント)とWWWサーバの間では、途
中経過を保持することができない。
途中経過を保存したい時:
-  パスワードを打って利用者を確認した
 -  買い物かごの中身を保持したい
 -  IPアドレスが毎回違うような場合、前回アクセスしてきた人を識別したい
 
WWWで途中経過を保存するためには、cookie が使われる。
-  WWWサーバが、最初にアクセスした時に利用者ごとにクッキーを生成
し、ブラウザに返す。
 -  ブラウザは、返されたクッキーをファイルに保存しておく。
 -  ブラウザは、次に同じサーバに要求を送る時に、ファイルに保存してあ
るクッキーを読み出して要求とともにサーバに送る。
 -  要求を受け取ったサーバは、要求に含まれているクッキーから、そのブ
ラウザを使っていた人が前回どのページを訪れたかを知ることができる。
 
サーバは、その情報を利用して、適切なページ(たとえば前回最後に訪れたペー
ジ)を表示させるようにすることができる。
現在の cookie の実現では、利用者のプライバシーを犯す危険性が高いという
問題が指摘されている。
普通のWWWサーバでは、要求を送ってきたコンピュータのIPアドレスを記
録しているので、コンピュータ単位でのアクセス状況を記録することはできる
が、個人を特定することはできない。
クッキーを利用することにより、コンピュータではなくどの個人がアクセスし
てきたかを記録することができる。
クッキーから電子メールのアドレスや氏名まで調べることはできない。
しかし、インターネットをサーフしている間にどこかでそれを打ち込んだが最
後、クッキーと電子メール・アドレスや氏名との対応が記録されてしまう危険
性がある。
参考
RFC2965 HTTP State Management Mechanism
Netscape社によるWWWにおけるクッキー実現の案
http://wp.netscape.com/newsref/std/cookie_spec.html
実習時間中には、
以下の課題をできるだけ多く行いなさい。全部を行う必要はない。
grep コマンドを使って、次のファイルや結果を検索しなさい。
-  /var/log/httpd/www.coins80/access_log.*          (ssh で orchid-nwd にログインする)
 -  /var/log/httpd/www.coins443/ssl_access_log.*     (ssh で orchid-nwd にログインする)
 -  /usr/share/dict/words
 -  /etc/services
 -  その他
 
grep コマンドを使って、次のコマンドの結果を検索しなさい。
grep の代わりに egrep を使ってみなさい。egrep 独自の機能を調べなさい。
The Unix Super Text 35.3 参照。
sed コマンドを使って、正規表現の検索を行いなさい。
-  sed -n -e '/正規表現/p' < file
 
sed コマンドを使って、正規表現の置換えを行いなさい。
-  sed -e 's/正規表現/置換え対象/' < file
 
awk コマンドを使って、正規表現の検索を行いなさい。
-  awk '/正規表現/ { print }' < file 
 
Ruby, Perl などのスクリプト言語が持つ1行プログラミングの機能を用いて、
正規表現の検索を行いなさい。
look コマンドは、単語のスペルを調べるコマンドである。grep コマンドを用
いて、look コマンドと同じ単語が検索できることを確認しなさい。
WWW ブラウザが、cookie をどのように扱う状態になっているかを調べなさい。
cookie を受け付けないように設定してみなさい。
MacOSX Firefox
-  「Firefox」メニューの「設定」項目を選ぶ。
 -  「プライバシー」タブを開く
 -  「Cookie」の欄で「サイトから送られてきた Cookie を保存する」の
チェックを入れたり外したりする。
 
次のような操作を行ってみなさい。
-  保存されている Cookie を表示する
 -  不要なCookie を削除する
 -  Cookie の保存方法を調整する(毎回確認する/サイトが指定した日時まで保存/WWWブラウザを終了するまで保存)。
 -  標準では保存しないが、例外的に保存するサイトを登録する。
 -  標準では保存するが、例外的に保存しないサイトを登録する。
 
cd, ls, lv コマンドなどを利用して Cookie が保存されているファイルを観察
しなさい。MacOSX Firefox では次の場所にある。
-  
~/Library/Application\ Support/Firefox/Profiles/*/cookies.txt
 
~/secure_html/ の下に、実験用のディレクトリを作成しなさい。
% mkdir ~/secure_html 
% mkdir ~/secure_html/ディレクトリ名 
次のドキュメントを参考にして、作成したディレクトリに .htaccess を作成し
なさい。
次の3つの方法を比較しなさい。
-  
Require group と書く方法
 -  
Require user と書く方法
 -  
Require valid-user と書く方法
 
レポート提出ページや出席ボタンでは、どのような設定になっているかを観察しなさい。
htpasswd コマンドを使ってパスワード・ファイルを作成しなさい。作成したパ
スワード・ファイルを利用して、Basic 認証によりアクセス制御を行うように
設定しなさい。
The Unix Super Text 28.7.6項 参照。
例:パスワード・ファイル 
/home1/prof/yas/etc/passwd-doc1 に登録されているユーザだけが、
.htaccess があるディレクトリ以下にあるファイルをアクセスできる。
.htaccess:
AuthType Basic
AuthName "restricted stuff"
AuthUserFile /home1/prof/yas/etc/passwd-doc1
require valid-user
このパスワード・ファイルは、サーバ上でhtpasswd というプログラムで作成する。
% htpasswd -c /home1/prof/yas/etc/passwd-doc1 user1 
Adding password for user1.
New password:user1のパスワードを打ち込む
Re-type new password:user1のパスワードを打ち込む
% htpasswd /home1/prof/yas/etc/passwd-doc1 user2 
Adding user user2
New password:user2のパスワードを打ち込む
Re-type new password:user2のパスワードを打ち込む
% 
一番最初は、-c オプション付で実行する。passwd コマ
ンドと同様に、打ち込んだパスワードは、画面には表示されず、また、確
認のために2回打つ必要がある。
htpasswd コマンドの結果、次のようなファイルが作られる。
user1:1fjr1tHIgoG7U
user2:qXaeA9Zge7Yqc
ユーザ名と暗号化されたパスワード(正確にはパスワードのハッシュ値)から
構成される。
パスワードによるアクセス制御の例:
設定ファイル .htaccess
AuthType Basic
AuthName "restricted stuff"
AuthUserFile /home1/prof/yas/etc/passwd-doc1
require valid-user
htpasswd コマンドの代わりに dbmmanage コマンドを使い、パスワード・ファ
イルを作成しなさい。作成したパスワード・ファイルを利用して、Basic 認証
によりアクセス制御を行うように設定しなさい。
特定のIPアドレスのコンピュータからしか表示できないような WWW ページを作
成しなさい。逆に、特定のIPアドレスのコンピュータからは表示できないよう
な WWW ページを作成しなさい。
Apache には、正規表現によりアクセス制御の対象となるファイル名や URL を
指定する機能がある。この機能を確認しなさい。
-  <FilesMatch>
 -  <DirectoryMatch>
 -  <LocationMatch>
 
締め切りは、2007年6月26日火曜日とする。
回答をテキスト・ファイルに記述し、(レポート提出
ページ)から提出しなさい。
(1) 正規表現の検索機能を用いて、次のファイルから次のことがらを検索して
画面に表示しなさい。
-  /usr/share/dict/words。l で始まり、th を含み、cal で終わる。
 -  /usr/share/dict/words。自分の名前の英語表記の一部(任意の3文字以上を選びそれが連続している)を含み、
かつ、a、i、u、e、o のいずれかの文字を含むもの。
たとえば、名前が Shinjo なら shi や inj や sjo を選ぶ。
 -  /var/log/httpd/www.coins80/access_log.200706160412 または 同じディレクトリ内にある
アクセスログ。自分が作成したWWWページに対するアクセス。
 
レポートには、コマンドラインと実行結果を含めなさい。実行結果が10行以上
に渡る時には、途中を省略しなさい。
なお、grepコマンドには、or の機能がない。orが必要な場合、grep コマンド
を複数回実行してもよい。egrep 機能を用いれば 1 回で終わることもある。
(2) 正規表現の検索機能を用いて、次のコマンドの実行結果から次のことがら
を検索して画面に表示しなさい。
-  ps auxw。自分のプロセス。(この課題では、ps の -U オプションをつからない。)
 -  ls -l。ディレクトリだけ。
 -  ls -l。普通のファイル以外。
 -  ls -l。グループ、または、他人が読めるもの。
 
(3) 正規表現の置換え機能(sed,Emacs,viなど)を用いて、次のことを行いなさい。
 
レポートには、利用したプログラムの種別、そのプログラムに与えた命令を書
きなさい。
(4) アクセスする時に Cookie の設定を要求する Web サイトを1つ示しなさい。
そのサイトが Cookie の設定を有効にした時と無効にした時で動作が変わるか
を調べなさい。
(5) The Unix Super Text の次の部分を読みなさい。
-  上巻 11.6節、11.8節-11.11節、22.3節、30.3節、35章、39章
 
次の項目について1-3行で説明しなさい。
-  「
&」の意味
 -  フォアグランド
 -  csh の alias の定義方法
 -  tr コマンド
 -  ~/.cshrc
 -  foreachコマンド
 
(6) [加点] Webページにおいて、ある特定のディレクトリ以下のファイルやディ
レクトリに対して、Basic 認証、または、IP アドレスを用いてアクセス制御を
行うように設定しなさい。レポートにはディレクトリ名、および、作成した
.htaccess の記述、アクセスが許されたときのログ、失敗した時のログを含め
なさい。ログは最小限のものだけを含めなさい。
Last updated: 2007/06/19 16:28:19
 
 Yasushi Shinjo / <yas@is.tsukuba.ac.jp>