Kenji Arisawa
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 はグループの構成員である。

例えば、
1:alice:alice
のような行があればユーザaliceはグループaliceのリーダであり、グループaliceにはalice以外のメンバはいない。

また
1:alice:bob:bob,carol
となっていればグループaliceには alice と bob と carol が属している。

もしも
1:alice::bob,carol
となっていれば、この場合はグループリーダーがいないのではなく、bobもcarolも等しくグループリーダとしての権限を発揮できる。

グループリーダはアクセス権を変更できるのだからファイルの死命を制することになる。aliceが自分のファイルを守る必要があるなら
1:alice:alice:bob,carol
としなければならないだろう。

/adm/users を覗いてみると、グループリーダにユーザ名が指定していないユーザが存在するが、いずれも通常の意味でのユーザではない。

さてエンドユーザの立場からすると、現実社会の組織の階層性を反映した、SEの世話によらない、エンドユーザ主導のグループ編成を可能にして欲しいのである。
UNIXのグループはエンドユーザにとって殆ど役に立っていない。Plan9においてはユーザは少なくとも1個の固有のグループを持ち、いくらか改善はされている。しかしながら、その固有のグループにメンバを追加するコマンドが準備されているわけではない。(そのようなコマンドを作ろうと思えば、カーネルの改造なしに可能であろう。)

Plan9はUNIXファイルシステムとの互換性を重視した。そしてその範囲内で、現実的なレベルで新たなグループ編成の考え方を打ち出したのであある。
Plan9で想定されているグループ編成は例えば、
20001:staff:bob:alice,bob,carol
のようなものである。staffはユーザ名と言うより実際には単なるグループ名であり、そのリーダはbobで、全権を任せられているのである。(bobはメンバを決定する権限を持つべきである。)

以上のように考えると/adm/usersはユーザを記述しているファイルと言うより、グループを記述しているファイルであると言える。ユーザ管理とグループ管理との間に本質的な区別は不要であるとの主張であろう。