「所有者」権限が存在するのはなぜですか?グループ権限が足りませんか?

「所有者」権限が存在するのはなぜですか?グループ権限が足りませんか?

私はLinuxでファイル権限がどのように機能するかをよりよく理解していると思います。しかし、なぜ2段階ではなく3段階に分かれているのかよくわかりません。

私は次の質問に答えたいと思います。

  • これは意図的なデザインですか、それともパッチですか?つまり、所有者/グループ権限は理由があるために設計され、作成されましたか?それとも、ニーズを満たすために順番に登場しましたか?
  • ユーザー/グループ/その他のスキームは便利ですが、グループ/その他のスキームでは十分ではありませんか?

最初の質問に対する回答は、教科書または公式ディスカッション掲示板を引用する必要があります。

私が考慮したユースケースは次のとおりです。

  • 個人ファイル - 多くのシステムで一般的に実行されている各ユーザーのグループを作成することで簡単に取得できます。
  • 所有者(たとえば、システムサービス)のみがファイルに書き込むことを許可し、特定のグループのみを読み取ることを許可し、他のすべてのアクセスは拒否します。この例の問題は、一度要求したことです。グループ書き込みアクセス権を取得するには、ユーザー/グループ/その他が失敗します。両方の答えは、IMHOが所有者権限の存在を証明しないACLを使用することです。

注:この質問の後に改善されました。スーパーユーザーのウェブサイト

編集する「しかし、グループ/所有者システムでは十分ではありません」を「...グループ/その他...」に修正しました。

ベストアンサー1

歴史

当初、Unixは自分が所属するユーザーとは異なるユーザーに対してのみ権限を持っていました。グループはありませんでした。具体的には、Unix バージョン 1 のドキュメントを参照してください。chmod(1)。したがって、他の理由がない場合は、以前のバージョンとの互換性のためにユーザーの権限が必要です。

グループは後で来ました。複数のグループがファイルへの権限に参加できるようにするACLは、はるかに後で登場しました。

表現力

ファイルに対する3つの権限がある場合、2つのファイルしかないよりも非常に低コスト(ACLよりもはるかに低い)でより細かい権限が可能です。たとえば、ファイルにモードがあるとしますrw-r-----。つまり、所有しているユーザーだけが書き込み可能で、グループから読み取ることができます。

別のユースケースは、グループでのみ実行できるsetuid実行可能ファイルです。たとえば、rwsr-x---モードを持つプログラムは、グループ内のユーザーだけがrootroot:adminとしてプログラムを実行できるようにします。admin

「この計画では表現できない権利があります」という言葉はひどい反対です。適用可能な基準は、コストを正当化するのに十分に一般的に表現可能なケースが十分であるかです。この場合、特にユーザー/グループ/三部化の他の理由を考慮すると、コストが最小限に抑えられます。

シンプル

ユーザーごとに1つのグループの管理オーバーヘッドは小さくても大きくはありません。幸いなことに、非常に一般的な個人ファイルの状況はこれに依存しません。個人ファイルを生成するアプリケーション(たとえば、電子メール配信プログラム)は、ファイルにモード600を割り当てるだけでよいことを知っています。ユーザーのみを含むグループを見つけるためにグループデータベースを参照する必要はありません。そのようなグループがないか、複数の場合はどうなりますか?

別の方向から見ると、ファイルを見てその権限を監査したいとします(つまり、権限が正しいことを確認)。グループ定義を追跡する必要がある場合よりも、「ユーザーにのみアクセス可能で、優れています。次のステップ」が可能であれば、はるかに簡単です。 (これらの複雑さは、ACLや機能などの高度な機能を多く使用するシステムの問題です。)

直交性

各プロセスは特定のユーザーと特定のグループへのファイルシステムアクセスを実行します(セカンダリグループをサポートする最新のユニークにはより複雑なルールがあります)。ユーザーは、ルートテスト(uid 0)やシグナリング権限(ユーザーベース)を含む多くのタスクに使用されます。プロセス権限でユーザーとグループを区別することと、ファイルシステム権限でユーザーとグループを区別することとの間には、自然な対称性があります。

おすすめ記事