web-dev-qa-db-ja.com

Linuxのデフォルトのグループとユーザーの背後にある理由

いくつかの通常のLinuxディストリビューション(それぞれArchLinuxとDebian)のデフォルトのユーザーとグループの管理を見て、それについて、およびデフォルトのセットアップと構成を変更した場合の結果について、2つのことを考えています。

USERGROUPS_ENAB/etc/login.defsのデフォルト値は「yes」のようです。これは"デフォルトでは、新しいユーザーのグループも作成されます"useradd manで見つけることができるため、新しいユーザーが作成されるたびに、同じ名前でこの新しいユーザーのみが含まれるグループが作成されます。これを使用するのですか、それとも単なるプレースホルダーですか?

これを行うことでser/group/othersとして権利管理の一部を失うような気がします。 「users」や「regulars」などのグループを作成するのは良くありませんか。グループを作成するのではなく、すべてのユーザーのデフォルトグループにしたいと思いますか。

私の質問の2番目の部分は、まだArchとDebianで見たことに基づいています。デフォルトで作成されたユーザー(FTP、HTTPなど)はたくさんあります。それらの用途はありますか、それとも歴史的な理由でのみ存在しますか?

私はそれらを削除することを考えていますが、それを使用する可能性のあるものを壊したくありませんが、それを行うものは何も見たことがなく、何ができるのかわかりません。同じことは、ユーザーが属しているのを見たことがないデフォルトのグループ(tty、memなど)にも当てはまります。

15
Horgix

ユーザーごとのグループ

私も、ユーザーごとのグループに多くの有用性を見出していません。主な使用例は、ユーザーがファイルへの「友達」アクセスを許可したい場合、友達ユーザーをグループに追加させることができます。私が遭遇したシステムの中で、実際にこの方法で使用しているものはほとんどありません。

USERGROUPS_ENAB/etc/login.defsが "no"に設定されている場合、useraddGROUPフィールドによって/etc/default/useraddで定義されたグループにすべての作成済みユーザーを追加します。ほとんどのディストリビューションでは、これはGID 100に設定されます。これは通常usersグループに対応します。これにより、より一般的なユーザー管理が可能になります。次に、より詳細な制御が必要な場合は、これらのグループを手動で追加し、ユーザーをグループに追加して、理にかなっているようにすることができます。

デフォルトで作成されたグループ

それらのほとんどは歴史的な理由から生じましたが、多くは今日でも有効な用途があります:

  • diskは、ほとんどのディスクドライブデバイスを所有するグループです
  • lpはパラレルポートを所有します(カップの管理者権限が設定されていることもあります)
  • uucpは多くの場合、シリアルポート(USBシリアルポートを含む)を所有しています
  • cDドライブに特権をマウントするにはcdromが必要です
  • 一部のシステムはSudoの権利にホイールを使用します。一部ではない
  • 等.

他のグループは、バックグラウンドスクリプトによって使用されます。たとえば、manは実行時に一時ファイルなどを生成します。そのプロセスでは、これらのファイルの一部にmanグループを使用し、通常はそれ自体をクリーンアップします。


Linux Standard Base Core Specification によると、ただし root、bin、daemonである3人のユーザーのみが絶対に必須 です。他のグループの背後にある 根拠 は:

オプションのユーザーとグループを指定する目的は、アプリケーションとディストリビューションの間で名前が競合する可能性を減らすことです。

したがって、これらのグループを適切な場所に保持する方が良いように見えます。 理論的に破損せずにそれらを削除することは可能ですが、「不可解な」ものが正しく機能しなくなる場合もあります(たとえば、あなたはそのグループなどを殺します)。そのままにしておいても害はありません。また、通常、すべてのLinuxシステムにそれらが存在すると想定されています。

13
Jim Kusznir

質問1:同じユーザーとグループの理由

こんにちは、ecyoungです。あなたはhorgixです。私たちは毎日仕事に行き、プログラマーと同じLinuxサーバーにログインします。少し前のある日、私たちのシステム管理者はユーザーの作成と保守を自分で簡単にすることを決定したため、USERGROUPS_ENABオプションを使用して、既存のすべてのユーザーを新しいusersグループに追加します。


すべてのユーザーが他のすべてのユーザーファイルにアクセスできるため、これによりユーザーの作成は容易になりますが、メンテナンスはわかりません。企業の環境では、これは Sarbanes OxleySegregation of Duties などの理由により、大きな違いです。ファイルAを作成する場合、グループビットはユーザーグループに設定されます。つまり、すべてのユーザーが少なくともファイルAを読み取ることができます。システム管理者が遅延している場合、すべてのユーザーがファイルAをRWできることがあります。これにより、サーベンスオクスリーが破られます。そして、SoDは、別の部門が他の人のドキュメントを読むことをはるかに少なくするべきではないためです。


ユーザー/グループを有効にして、ecyoungとしてドキュメントを作成した場合、それに対するrwx権限しか持っていません。私のグループには誰もいないので、私のドキュメントを開くと、警告付きの空白のページが表示されます。これにより、サーベンスオクスリー法とSoDが施行されます。他のユーザーを招待すると、それらのユーザーにはrwアクセスが許可されます。そうすることで、私や彼らを噛むために戻ってくるユーザーがいないことがわかります。他の人が言ったように、自宅にいる場合、その分離はあなたにとって重要ではないかもしれません。それがわかったら、オプションを安全にオフにでき、すべてのユーザーがGID 100のusersグループに追加されます。以下の質問2を参照してください。

仮定
あなたはIT部門で働いており、LouisはPayrollで働いています。ルイは税金と給与計算シートを自分のホームディレクトリに保持していますが、どちらもユーザーグループに属しているため、ユーザーの+ rとマークされているのでホームディレクトリを開き、スプレッドシートを見つけます。給与額がJoeとFredとともに一覧表示されます。ジョーとフレッドは彼らの給料を知ってほしいと思いますか?


質問2:グループID 0から500

グループIDおよび逆にユーザーID 0〜500は、システムアカウントおよびデバイスアクセス用に予約されています。標準アカウントのリストについては、 事前設定されたシステムグループの表 を参照してください。これらのアカウントを手動で削除しないでください。たとえば、ユーザーftpを削除する場合は、パッケージ管理システムでftpデーモンを削除します。これにより、システムアカウントも削除されます。システムサービスには以下が含まれますが、これらに限定されません。

  • CUPS印刷サービス
  • MySQLサーバーデーモン
  • FTPサーバーデーモン
  • Apace Webサーバー
  • リモート接続用のXサーバーソケット
  • ALSAサウンドシステムデーモン
  • DBUSサービス

他にもありますので、他の読者が上記のサービスリストに追加または削除したい場合は、そうしてください。

6
eyoung100

昔のように、デフォルトグループをすべて共有している場合は、グループをブロックするためにumaskを077に設定する必要があります。デフォルトがmeの場合、umaskを027に設定できますが、ディレクトリまたはファイルを共有グループに設定すると、このグループが読み取ることができます。モードをいじる必要もありません。

これは一例にすぎませんが、一般的には、必要になるまでグループを無効にして、簡単に電源を入れて管理できるようにする方法です。

4
ctrl-alt-delor

ユーザーごとのグループでは、「ホームディレクトリでのプライバシー」と「共有フォルダでの簡単なコラボレーション」の両方を使用できます。ユーザーごとのグループがない場合は、どちらか一方だけを使用できます。詳細は次のとおりです。

Unixは、会社のファイルサーバーでも、2ユーザーのPCでも、マルチユーザーシステムです。 「ホームディレクトリのプライバシー」は、いくつかの方法で実現できます。

「umask 077」を設定して、ファイルがrwで作成され、他のユーザーにはアクセス権がないようにします。または、027または022の場合、一部またはすべてがファイルを読み取ることはできますが、書き込むことはできません。明らかな欠点は、共有フォルダでは共同作業ができないことです。これは、厳密なアクセス許可が原因で、他の人が作成したファイルを操作できないためです。そのようなファイルの権限を変更することはできますが、それは「やり過ぎ」であり、しばしば忘れられます。

共同作業を行うには、「umask 7」のようなものが必要です。これにより、自分と所有グループの両方が、作成したファイルを読み書きできるようになります。これは、共有フォルダおよび共有アクセスを必要とするすべての人で構成されるグループに最適です。しかし、あなたはあなたのホームフォルダのプライバシーを失います!

ユーザーごとのグループがソリューションです! umask 7を使用するので、作成するすべてのファイルは「rwはあなたに、rwはグループに」を取得します。ホームディレクトリ内のファイルは、個人グループを「所有グループ」として作成されるため、「グループrw」権限があっても他のユーザーはこれらのファイルにアクセスできません。あなただけがその特定のグループにいるからです。

共有フォルダで引き続き共同作業することができます。共有フォルダ内のファイルは所有グループの「rw」を取得し、sysadminは共有フォルダ(共同編集者と呼ばれる)がそのファイルのグループ所有者になるように共有フォルダを設定します。これを行うには、すべての共同作業ユーザーをメンバーとして、この共同作業者グループを作成します。次に、管理者は共有フォルダのグループ所有権を「collaborators」に設定し、共有フォルダのSETGID権限を設定します。 SETGIDがオンの場合、共有フォルダで作成されたものはすべて、共有フォルダと同じグループ所有者、つまり「collaborators」グループになります。また、umask 7(または2)を使用すると、このグループのすべてのユーザーが読み取りと書き込みのアクセス権を持ち、共同作業が可能になります。共有ファイルのアクセス許可をデフォルトから変更する必要はありません。ホームフォルダで使用されるユーザーごとのグループのおかげで、ホームフォルダのプライバシーは維持されます。

2
Helge Hafting

元々、Unixプロセスは一度に1つのグループに属することができました(以前はchgrp(1)コマンドで、/etc/groupsの痕跡パスワードフィールドに保存されているグループパスワードを要求していました)。 Plusシステムは、密接に結びついたユーザーグループによって使用されました。 usersグループに全員がいて、グループの権限によってシステム全体で共有することは理にかなっています。本当のセキュリティ意識はなく、数十人のユーザーの疑いはほとんどありません。すべてが同じマシン上のローカルなものでした。ものを共有するネットワークはありません。ブログなどで。

今日のUnixシステムには何百人ものユーザーがいて、セキュリティ要件は厳しく、ユーザー(およびプロセス)はいくつかのグループに属することができます。 (より無知な)各ユーザーにホームグループを与え、そこから離れて共有できるようにします。またはACLを使用します。

0
vonbrand