6.4. ユーザープライベートグループ

Red Hat Enterprise LinuxはユーザープライベートグループUPG )体系を使用しているのでUNIXのグループ管理が楽になります。

UPGは新規のユーザーがシステムに追加される度に、生成されます。UPGはそれが生成される 元であるユーザーと同名を持っており、そのユーザーのみがUPGのメンバーです。

UPGの使用により、新規のファイルやディレクトリに対し安全にデフォルトの権限を設定する ことが可能なため、ユーザーとそのユーザーのグループは それらのファイルやディレクトリを自由に修正出来るようになります。

新規に作成されたファイルやディレクトリに対してどの権限を与えるかを決定する設定は umaskと呼ばれ、/etc/bashrcファイル内に 設定されています。伝統的にUNIXシステムでは、そのumaskは022に設定されています。 この設定では、ファイル又はディレクトリを作成したユーザー本人のみが変更できます。 この体系下では、他のユーザーとユーザーグループのメンバーでも そのユーザーのファイルは変更出来ません。しかしUPG体系の中では、各ユーザーが自己の プライベートグループを持つことから、このグループ保護は必要ではありません。

6.4.1. グループディレクトリ

多くのIT企業や組織は、主要プロジェクトごとにグループを作成し、 そのプロジェクトのファイルにアクセスする必要のある人を グループに割り当てる傾向にあります。 こうした従来のやり方でいくと、誰かがファイルを作成した場合に、 それは属するプライマリグループと関連があるため、ファイルの管理が困難でした。 1人の人間が複数のプロジェクトに従事する場合、正しいファイルを正しいグループと関連付けるのは難しくなります。 しかし、UPG体系では、ディレクトリ内で作成されたファイルに対して setgidビットセットを持つグループが自動的に割り当てられます。 ユーザーがあるディレクトリ内で作成するファイルはすべて、 そのディレクトリの所有グループとなるグループにより所有されることになるので、 共通ディレクトリを共有するグループプロジェクトの管理が非常にシンプルになります。

例としてあげると、あるグループが/usr/lib/emacs/site-lisp/ディレクトリ内の ファイルで作業をしているとします。 ディレクトリの修正に関して信頼できる人もいますが、 全員が信頼できるわけではありません。最初に、emacsグループを次のコマンドで作ります。

/usr/sbin/groupadd emacs

そのディレクトリの内容をemacsグループと 関連づけるには次のように入力します。

chown -R root.emacs /usr/lib/emacs/site-lisp

ここでgpasswdコマンドを使用してこのグループに 正式なユーザーを追加することが可能になります。

/usr/bin/gpasswd -a <username> emacs

以下のコマンドで、このディレクトリ内に実際にファイルを作成する権限をユーザーに与えます。

chmod 775 /usr/lib/emacs/site-lisp

ユーザーが新しいファイルを作成すると、そのファイルのグループとしてユーザーのデフォルトである プライベートグループが割り当てられます。次にsetgidビットを設定して、そのディレクトリに作成 された全てにディレクトリ自身(emacs)と同じグループ権限を 割り当てます。次のコマンドを使用します。

chmod 2775 /usr/lib/emacs/site-lisp

この時点で各ユーザーのデフォルトumaskが002である為に、ユーザーが新しいファイルを書き込む度に 管理者がファイルの権限を変更することなく、emacsグループの 全てのメンバーは/usr/lib/emacs/site-lisp/ディレクトリ内でファイルを作成 及び編集することができます。