E-mail: arisawa@aichi-u.ac.jp
Aichi University
Kurozasa 370, Miyoshi-cho
Aichi, Japan
http://ar.aichi-u.ac.jp
グループ編成
現在のユーザとグループ編成の状態は
/adm/users
を見れば分る。このファイルは
num:name:leader:members
の形式で書かれている。numはファイルシステムの内部で使用されているファイルの所有者を表す数字である。nameはユーザ名であり、どのユーザもそのユーザと同名のグループを持っている。members はグループの構成員である。
例えば、
のような行があればユーザaliceはグループaliceのリーダであり、グループaliceにはalice以外のメンバはいない。
1:alice:alice
また
となっていればグループaliceには alice と bob と carol が属している。
1:alice:bob:bob,carol
- この場合bobとcarolはaliceグループに属するファイルのグループパーミッションに従ってファイルの読み書き実行が可能になる
- bobもcarolもchgrp コマンドで alice グループのファイルを作成できる。
- bob は グループ alice のリーダであり、aliceグループに属すファイルのパーミッションを変更できる。
注釈: Plan9のマニュアル("Plan9 - The Manuals")には単にパーミッションを変更できると書いてあるが、Planのドキュメント("Plan9 - The Documents")にはグループパーミッションを変更できると書いてある。実際にはオーナパーミッションを含めて変更できる。
1:alice::bob,carol
となっていれば、この場合はグループリーダーがいないのではなく、bobもcarolも等しくグループリーダとしての権限を発揮できる。
グループリーダはアクセス権を変更できるのだからファイルの死命を制することになる。aliceが自分のファイルを守る必要があるなら
としなければならないだろう。
1:alice:alice:bob,carol
/adm/users
を覗いてみると、グループリーダにユーザ名が指定していないユーザが存在するが、いずれも通常の意味でのユーザではない。
さてエンドユーザの立場からすると、現実社会の組織の階層性を反映した、SEの世話によらない、エンドユーザ主導のグループ編成を可能にして欲しいのである。
UNIXのグループはエンドユーザにとって殆ど役に立っていない。Plan9においてはユーザは少なくとも1個の固有のグループを持ち、いくらか改善はされている。しかしながら、その固有のグループにメンバを追加するコマンドが準備されているわけではない。(そのようなコマンドを作ろうと思えば、カーネルの改造なしに可能であろう。)
Plan9はUNIXファイルシステムとの互換性を重視した。そしてその範囲内で、現実的なレベルで新たなグループ編成の考え方を打ち出したのであある。
Plan9で想定されているグループ編成は例えば、
のようなものである。staffはユーザ名と言うより実際には単なるグループ名であり、そのリーダはbobで、全権を任せられているのである。(bobはメンバを決定する権限を持つべきである。)
20001:staff:bob:alice,bob,carol
以上のように考えると/adm/users
はユーザを記述しているファイルと言うより、グループを記述しているファイルであると言える。ユーザ管理とグループ管理との間に本質的な区別は不要であるとの主張であろう。