プロが教えるわが家の防犯対策術!

よろしくお願いします。

linuxってユーザ名と同じグループが作成されますよね。これってなぜ必要なのでしょうか。

例えばWindowsならadministrator とか users とか役割別のグループが作成されていた、分かりやすいのですが。

ユーザを作るたびにグループが増えて管理が大変です。よろしくお願いします。

A 回答 (10件)

> linuxってユーザ名と同じグループが作成されますよね。


> これってなぜ必要なのでしょうか。

例えば、user1、user2 という2人のユーザがいたとします。

そして、この2人のユーザがあるプロジェクトを立ち上げたとします。
さらに、プロジェクトで共通のドキュメントを置くディレクトリ /var/opt/project を作成し、両方のユーザから読み書きできるようにしたいとします。

これを実現するためには、

1. 新たに project グループを作成
2. /var/opt/project ディレクトリのグループを project に設定
3. /var/opt/project ディレクトリのパーミッションを 2775
(グループに対して書き込み権限とsgid をセットする。これで、このディレクトリ以下に作成されたファイルおよびディレクトリのグループも project になる)

とするでしょう。

ただし、user1 と user2 の一時グループが users であり、かつデフォルトの umask が 022 とすると、/var/opt/project 内に作成したファイルのパーミッションは 644 になります。つまり、user1 が作成したファイルを user2 が更新することができません。(できないわけではないが、ファイルを作成するたびに /var/opt/project 内のファイルのパーミッションを 664 に変更する必要がある)

かと言って、デフォルトのumask を 002 とするのは、あまりにもリスクが大きすぎます。

ところが、user1 と user2 がそれぞれ user1、user2 という異なるグループに属していたなら、umask 002 としても上のようなリスクは発生しませんね。これがユーザが属するグループを全て別々に設定する理由です。

言い換えれば、デフォルトの umask を 002 に設定して、異なるユーザ間でファイル共有を行っても、セキュリティ・レベルを低下させないようにするためといったところでしょうか。

ちなみに、shadow-utils のオリジナルのソースコード上では、useradd を -g オプションなしに使用した場合のデフォルト・グループは gid 100 (通常は users。gid 100 は /etc/default/useradd で変更可能) になるようにハードコードされています。RHEL ではこのソースコードにパッチを適用し、この動作がカスタマイズされています。(パッチ適用前の動作をさせる場合には -n オプションを使用)

参考URL:http://www.jp.redhat.com/support/manuals/RHL62/r …
    • good
    • 2
この回答へのお礼

回答ありがとうございます。とても良く理解できました。ありがとうございました。

お礼日時:2008/01/19 20:23

そういうグループのことを「ユーザープライベートグループ」と呼ぶそうです。

参考URLに掲げたページなどご覧いただくと、簡潔にまとまっているので、メリットがよくわかるのではないかと思います。

参考URL:http://ma2tak.dyndns.org:8888/ma2tak/1437
    • good
    • 0

ユーザA、ユーザB、ユーザCといたとします。


ユーザAが作成したファイルをユーザCにはアクセスを許可しないで、ユーザBには読み書きを許可したい場合、
ファイルのパーミッョンでグループに読み書き権限を与え、その他のユーザには読み書き権限を外します。
その上で、ユーザAのグループAにユーザBを追加します。
コレでユーザBもファイルに対して読み書きが可能になります。

gpasswd -a ユーザB グループA
で、グループAの管理者がユーザBをグループAに追加できます。

が、予め/etc/gshadowが必要(無い場合はgrpconvコマンドで作成)で、かつシステム管理者(root)が
gpasswd -A ユーザA グループA
としてグループAの管理者としてユーザAを登録しておく必要があります。

http://www.pinkdragon.net/doc_lib/contents/ja/li …
http://memo.blogdns.net/passwd.html の「ユーザプライベートグループ」の章など
    • good
    • 1

ユーザー毎に同じ名前のグループ名を作る事により


同じユーザー名・グループ名のユーザーを作らない
様にする事でデフォルトで他のユーザーへのアクセス
を禁止してセキュリティ性を高める事ができます。

グループ分けをする場合には別途にグループを作成
して、グループメンバーにユーザーを追加します。
#ユーザーを複数のグループメンバーにする事が
#できます。
各ユーザーに対して細かいアクセス権の設定が可能
になります。
    • good
    • 0

他の回答と重複しますが、グループはその使い方によって、グループ構成を設計して、ユーザーを適切なグループに所属させるのが真っ当なやり方です。


ただ、「グループとはなんぞや?」という物を知らない管理者が適当に設定すると、「グループアクセス権限」によって、意図せずに他人のファイルにアクセスできたりするので、初心者向けを謳うディストリビューションでは、デフォルトで、ユーザー名と同じグループを作るように設定されているのでしょう。安全サイドに倒す意味で。
    • good
    • 0

家庭や個人では、グループという概念は、そう重要ではないかも


知れませんね。
しかし会社組織では、総務、経理、技術、といった組織によって、
グループを分けて、グループ管理は、便利で必須なんですけど。
使う側を少し角度を変えてみることも大事でしょうね。

自分中心には作られていないということでしょうね。
    • good
    • 0

昔のディストリビューションは、グループ名はusersとなるものが多かったのですが、


安易に作成したユーザ全員が同じグループに所属してしまう状況になるよりも、
基本的にユーザは全員別グループとし、管理者が必要に応じてグループ分けができるようにとデフォルトではユーザ名と同じグループ名をつけるようになったと思います。

setgidを悪用すると全員が同じグループに所属していた場合は
影響が大きいですからね。

ただ、現在もデフォルトでusersを利用するディストリビューションもありますし、
それぞれのディストリビューションのポリシーによってユーザ作成時のデフォルト値を決めているようです。
    • good
    • 1

> ユーザ名と同じグループを作成するメリットがあると思うのですが



他の方のResを引用してすみません・・・

「名」には強い意味はありません。
使う人間に見やすくしているだけです。

ユーザもグループも、それについている番号が重要で、「名」は簡単に変更
できますが、ID番号を変えるのはちょっと手間(神経を使う)です。
    • good
    • 0

>linuxってユーザ名と同じグループが作成されますよね。


されません。自由にグループ名を決めてください
    • good
    • 0

デフォルトでユーザー名と同じグループ名にする設定に


なっているだけで、既存のグループを指定する事も
グループ名のみを登録する事もできますけど?

この回答への補足

ありがとうございます。
ユーザ名と同じグループは必須ではないとうことですね。

デフォルトでそう設定されているといことは
ユーザ名と同じグループを作成するメリットがあると思うのですが
それは何ですか?

補足日時:2008/01/15 22:52
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!