unix 系のサーバにアカウントを作成する際に、
というように 'someone' のプライマリグループとして 'someone' を設定する事がある。
このようなポリシー、またはこのような 'someone' グループを User Private Group というらしい。
なんか意味無くグループ増えるだけじゃん…と思って、ここ最近では避けるようにしていたんだけど、
本日ようやく使いどころがわかった。
プロジェクトチームでファイルを共有する場合、
- 同じグループ 'project' に 'someone1', 'someone2' が参加している状態にして、
- 共有したいファイルの所有グループを 'project' にし、
- グループ読み書き権限を付与しておく
2,3 を実現するためには、それぞれ、 setGID, umask(002) を使ったりする。
このようなケースで、
User Private Group ポリシーを採用していない場合、つまり
のような場合、共有したくないファイルを作成するのが難しい。
普通にファイルを作成するだけで someone1:project の所有物となり、
umask(002) の効果で、自動的に project グループで共有されてしまう。
一方、User Private Group ポリシーを採用していれば、
普通にファイルを作成した場合は、 someone1:someone1 の所有物となり誰とも共有されず、
project グループで共有されるのは setGID されたディレクトリ内だけになる。
この違いが、重要な場合もあるだろう。
例えば、共有レンタルサーバの管理とかする場合は必須だろうと思う。