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ビットセットを持つディレクトリ内で作成されたファイルに、グループが 自動的に割り当てられます。ユーザーがあるディレクトリ内で作成するファイルはすべて、そのディレクトリを所有するグループにより所有される為、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/ディレクトリ内でファイルを作成及び編集することができます。