2002/02/17 作成
森川 靖大
今回の座学編は、 gate-toroku-system の概要をまとめたものであり、 以下の 3 編から構成されている。
〔入門編〕では、 gate-toroku-system の概要を、 〔中級編〕ではその挙動を、 〔上級編〕では内部の構成を紹介する。
gate-toroku-system とは、
複数サーバ の ユーザ の 自動管理 をおこなうためのソフトウェアである。 (Debian GNU/Linux ver 2.0 〜 3.0 上で動作)
● ユーザの管理
ここで言うユーザ管理とは、主に
- サーバの利用申請の受け付け (and ユーザ個人情報取得)
- ユーザのサーバ登録認証 (or 却下)
- ユーザのアカウント作成
- ユーザの個人情報の管理
- ユーザの抹消
を指す。 これらの管理は、一つのサーバを多数のユーザで利用する時には必要となる。
● 自動化
gate-toroku-system では、Perl (特に、インターフェースとしてCGI) を用いることでユーザ管理を自動化している。 自動化する端的な理由は
ラクがしたいからである。では、どれくらい ラクができるのだろうか? 以下は、ユーザ管理を gate-toroku-system によって自動化した場合と そうでない場合の流れである。 いくつかの繁雑な作業が、自動化されることにより簡略になっていることが わかるだろう。
従来の方法 自動化された方法 利用申請
受け付けユーザ
- メールに必要事項を記入
- 申請受け付け窓口のアドレスに送信
ユーザ
- ブラウザで 「ユーザ登録申請用ページ (CGI)」を開く
- 必要事項を記入
- 記入したデータを送信
ユーザ認証ネットワーク組織管理者 ユーザ
- 審査
- ユーザに通知
- 結果を受け取る
ネットワーク組織管理者 gate-toroku-system
- 審査
- 審査の結果を「ユーザ認証用ページ (CGI)」に入力、送信
ユーザ
- ユーザに結果をメールで通知
- 結果を受け取る
ユーザアカウント
作成ネットワーク組織管理者 サーバ管理者
- サーバ管理者にアカウント作成を指示
ネットワーク組織管理者
- 手動でユーザアカウント作成
- ネットワーク管理者にアカウント情報を通知 (パスワード等)
- アカウント情報をユーザに通知
gate-toroku-system
- 審査の結果を受け取る
- 自動的にサーバにアカウントを作成
- ユーザにアカウント情報 (パスワード等) をメールで通知
個人情報
管理ネットワーク組織管理者
- データや書類等、なんらかの形で情報一覧を保持。 (サーバ管理者やユーザは簡単にデータを引き出せない。 また、変更も手間がかかる)
gate-toroku-system
- データの形で情報を保持。 ユーザは「ユーザ登録内容変更ページ (CGI)」 にて簡単に情報の変更が可能。
ユーザ
抹消ユーザ ネットワーク組織管理者
- アカウント抹消を申請
サーバ管理者
- 受理
- サーバ管理者に指示
ネットワーク組織管理者
- アカウントを削除
- ネットワーク組織管理者に報告
- サーバ管理者によってアカウントが抹消されたことを ユーザに通知
ユーザ gate-toroku-system
- 「ユーザ登録抹消ページ (CGI)」から抹消申請。
- アカウントを抹消
- ユーザにメールで抹消したことを通知
● 複数サーバの同時管理
もしもあなたが WWW、Mail、DNS、FTP、NEWS といった複数のサービスを おこなおうと考えたのならば、 可能であればそれぞれのサービス用にサーバを一つ一つ用意すべきである。 なぜなら、その方がトラブル発生時に致命的な被害を受けにくいからである。
しかし、たとえユーザ管理を自動化していたとしても、 複数のサーバを別々にユーザ管理していたのでは
ことになる。これはネットワーク組織の管理者、サーバの管理者、ユーザ全てに 言えることである。結局ラク出来ない
gate-toroku-system ではユーザ情報を複数のサーバで 共有できる。このおかげで、1 つのサーバでおこなっている ユーザ管理をそのまま他のサーバに用いることが出来る。 これにより、
複数サーバも単一サーバとほぼ同じコストでユーザ管理が可能である。
具体的な gate-toroku-system の動作内容を紹介する。 以下の 3 つが、その主な動作内容である。
- ユーザ管理用システムファイルの生成
- ユーザデータベースの保存・共有
- WWW を介した、CGI プログラムによるユーザからの 登録/変更/廃止受け付け
● ユーザ管理用システムファイルの制御
gate-toroku-system はユーザ管理のため、UNIX 系 OS の ユーザ管理用システムファイル
を生成する。 生成に際しては、下記のユーザデータベースを参照する。
/etc/passwd
… [ユーザ名、ユーザID、シェルなどが書き込まれている]/etc/group
… [グループユーザの情報が書き込まれている]/etc/shadow
… [パスワードが書き込まれている]
● ユーザデータベースの保存・共有
gate-toroku-system はユーザ情報管理のため、
以下にユーザのデータベースを格納している。
/home/gate/userdb
・ データベース形式
ユーザデータベースは、それぞれのユーザ毎に、一つずつファイルとして 保存されている。
┌──── hogehoge ────┐ ┌──── herohero ────┐ ┌─ |ユーザ名: hogehoge | |ユーザ名: herohero | | |氏名 : ホゲ太郎 | |氏名 : ヘロ助 | | |UID : 1531 | |UID : 1491 | | … |所属 : 北大理学部... | |所属 : 北大理学部... | | |シェル : /bin/bash | |シェル : /bin/tcsh | | | : | | : | | └─────────────┘ └─────────────┘ └─・ データベース共有 ─『登録サーバ』と『その他のサーバ』─
gate-toroku-system では複数のサーバで共通のユーザデータベースを持つ。 このデータベース共有のために、 gate-toroku-system を利用しているサーバのグループでは、 その 1 つを 『登録サーバ』、その他を 『その他のサーバ』 としている。
- 登録サーバ …
データベースの御本尊が置かれているサーバであり、 複数は存在しない。 CGI プログラムによるデータベースの生成・変更・削除がおこなわれる のはこのサーバのみである。- その他のサーバ …
このサーバのデータベースは 全て登録サーバからコピーされるものである。gate-toroku-system では、rsync (認証には ssh) を用いて 登録サーバとその他のサーバのユーザデータベースを同期している。
● CGI プログラムによるユーザからの登録/変更/廃止受け付け
gate-toroku-system は CGI を用いることで、 WWW を介した登録/変更/廃止受け付けを可能にしている。 なお、ユーザへの通知はメールを用いている。 登録/変更/廃止受け付け画面は以下のような雰囲気。 (これは見本なので動作はしない。)
ユーザ登録申請のページ
必要事項を記入した後、 を押して下さい。
希望ログイン名 名前 (日本語) 電話番号 所属 保証人ログイン名 利用者区分
北大地惑専攻教官
大学院生
学部学生
gate-toroku-system の裏側を紹介する。 このソフトウェアは、以下のプログラム群で構成されている。
簡単に各パーツについて紹介する。
- システム管理用プログラム
- ユーザ利用プログラム
- CGI プログラム
- マニュアル
- 設定ファイル
● システム管理用プログラム
/etc/passwd
や/etc/shadow
といった システムファイルを生成するためのプログラム群である。 root が起動することを前提にしている。
gate-db-to-passwd.pl
… [/etc/passwd
生成用 Perl スクリプト]gate-db-to-group.pl
… [/etc/group
生成用 Perl スクリプト]gate-db-to-shadow.pl
… [/etc/shadow
生成用 Perl スクリプト]
などなど...
● ユーザ利用プログラム
ユーザの登録/変更/廃止申請用の Perl スクリプト。 これらのプログラムがユーザデータベースを直接管理している。 基本的には CGI プログラムから呼び出されることを目的としているが、 一般ユーザがコマンドとして起動することも可能である。
gate-user-apply.pl
… [ユーザ登録申請用 Perl スクリプト]gate-user-accept.pl
… [登録認証用 Perl スクリプト]gate-user-renew.pl
… [登録内容変更用 Perl スクリプト]gate-user-withdraw.pl
… [登録内容抹消用 Perl スクリプト]gate-user-list.pl
… [ユーザ一覧表示用 Perl スクリプト]gate-user-show.pl
… [登録内容表示用 Perl スクリプト]
などなど...
● CGI プログラム
WWW を介してユーザからの要求に答えるための CGI プログラム。Perl で記述されている。 ユーザデータベースを直接編集することは無く、 上記の ユーザ利用プログラム に必要な情報を受け渡すことが その役割である。
gate-user-apply.cgi
… [ユーザ登録申請用 CGI。書き込まれた情報を gate-user-apply.pl に引き渡す.]gate-user-accept.cgi
… [登録認証用 CGI。書き込まれた情報を gate-user-accept.pl に引き渡す.]gate-user-renew.cgi
… [登録内容変更用 CGI。書き込まれた情報を gate-user-renew.pl に引き渡す.]gate-user-withdraw.cgi
… [登録内容抹消用 CGI。書き込まれた情報を gate-user-withdraw.pl に引き渡す.]
などなど...
● マニュアル
gate-toroku-system には、それ自体のマニュアルも付属している。 インストール方法やコマンド/システムの解説が記されている。
install-toroku.html
… [登録サーバ用、インストールマニュアル。 HTML 形式で記述されている。]install-sonota.html
… [その他のサーバ用、インストールマニュアル。 HTML 形式で記述されている。]gate-toroku-system.1
… [gate-toroku-system のオンラインマニュアル。 roff 形式で記述されている。]gate-user-apply.1
… [gate-user-apply のオンラインマニュアル。 roff 形式で記述されている。]
などなど...
● 設定ファイル
gate-toroku-system には、設定ファイルが存在する。 gate-toroku-system の挙動は全てこのファイルによって制御可能 (なはず) である。
/etc/gate.conf
… [設定ファイル。 このファイルを編集することで gate-toroku-system を制御できる。]
以上が gate-toroku-system の概要であった。 ただ、今回の座学編では実際にインストールする方法や運用してしていく方法は 述べていない。 実際に gate-toroku-system を利用するのであれば http://www.ep.sci.hokudai.ac.jp/~gate/doc/index.html を参照してもらいたい。