14.5. グループの管理

グループとは、ユーザを羅列したものです。 グループは、グループ名と GID で識別されます。 FreeBSD では、 あるプロセスが何かするのを許可するかどうかをカーネルが判断する際に、 プロセスの UID とそのユーザが所属するグループの一覧を利用します。 ほとんどの場合、ユーザもしくはプロセスの GID は一覧の最初のグループを指しています。

グループ名から GID への写像は /etc/group にあります。 これは、コロンで区切られた 4 項目からなるテキストファイルです。 1 番目の項目はグループ名、 2 番目は暗号化されたパスワード、 3 番目が GID、 4 番目がカンマで区切られたメンバの一覧です。 文法についての完全な説明は、group(5) をご覧ください。

スーパーユーザは、/etc/group をテキストエディタで編集できます。 もしくは、pw(8) を使ってグループの追加や編集をできます。 たとえば、teamtwo というグループを追加して、その存在を確認するには、 次のように使います。

例14.8 pw(8) によるグループの追加
# pw groupadd teamtwo
# pw groupshow teamtwo
teamtwo:*:1100:

この例では、1100 という番号は、 teamtwoGID です。 この時点では、teamtwo にメンバはいません。 以下のコマンドは、 jruteamtwo のメンバに追加します。

例14.9 pw(8) により新しいグループにメンバを追加する
# pw groupmod teamtwo -M jru
# pw groupshow teamtwo
teamtwo:*:1100:jru

-M の引数は、 カンマで区切られた新しい (空の) グループに追加するもしくは存在するグループのメンバを置き換えるユーザの一覧です。 ユーザにとっては、このグループのメンバーシップはパスワードファイルに記載されているプライマリのグループとは異なります。 pw(8)groupshow コマンドを使った時は、 そのユーザはグループの一員として表示されませんが、id(1) などのツールを使って情報を問い合わせれば、 その情報を引き出せます。ユーザをグループに追加をする際に、pw(8)/etc/group しか扱わず、 /etc/passwd から追加のデータを読んだりはしません。

例14.10 pw(8) によるグループへのユーザ追加
# pw groupmod teamtwo -m db
# pw groupshow teamtwo
teamtwo:*:1100:jru,db

この例では、-m の引数は、 カンマで区切られたグループに追加するユーザの一覧です。 前の例と異なり、これらのユーザはグループ一覧に追加され、 グループのユーザ一覧を置き換えることはありません。

例14.11 グループに所属しているユーザを調べるための id(1) の使い方
% id jru
uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)

この例では、jrujru グループと teamtwo グループのメンバです。

このコマンドや /etc/group のフォーマットの詳細については、 pw(8) および group(5) をご覧ください。

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、 ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。

本文書に関する質問については、 <doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。