2016-07-12 12 views
-1

ファイルシステムとカーネルの関係の仕方と、それらがどのように連携しているか、具体的にはアクセス許可について理解しようとしています。ファイルシステム(および)のアクセス権の実装

(私は実際には、ファイルシステムはカーネル空間で実行されている、ことを知っているが、二つの実体を分離し、この文脈では、私はそれらを考慮してください。)

するとボブ(= 1001 UID、GID = 1001、グループ= "人間、マイナー")は、 "owner = Alice"と "group owner = minor"を持つ "rwx r--x"という "file.txt"を読み込もうとします。どちらがカーネルのファイルシステムの はアクセスを許可しますか?

ファイルシステムには、ボブのグループ、ボブのUID、カーネルから送信された他のもののリスト全体をパラメータとして取ります(ボブがターゲットファイルを読み込めるかどうかをファイルシステムが判断できるようにする機能はありますか?

また、これが動作する方法であれば、カーネルは拡張/特殊属性に対してファイルシステムに必要なデータをどのように知っていますか? synologyの拡張属性(ext4/btrfs)の場合。

何か助けを借りて/読んでいただきありがとうございます。

答えて

0

おはよう!

私の意見では - カーネルがユーザーからの要求(たとえば、ファイルを開く)を受け取ると、ユーザーのアクセス権が解析されます。それらが正しい場合、カーネルはハードウェアを管理して、ユーザーに要求されたデータを提供します。

コンピュータシステム(カーネルとファイルシステムで構成され、データを入力、格納、出力するハードウェアも含む)に関して、ファイルシステム自体は意思決定の可能性がありませんカーネルは行う)。それは情報構造であり、それを操作する規則(カーネルがアクセスする必要があり、正しく相互作用するためにこれらの規則はカーネルに格納されている必要があります)によって定義された方法で記述されています。したがって、カーネルはアクセスを提供するかどうかを決定します(要求を満たす場合は、カーネルがデータを操作します)。また、File-Systemは、ハードウェア上に格納されたデータと、ソフトウェア部分(カーネルへの命令として:ハードウェアの物理層を操作する方法と、論理層のアクセス提供を決める方法);決定的な役割は、カーネル(すべての規定に合致しなければならない)までです。

この亜種は単なる変種であり、さまざまなオペレーティングシステムの実現方法によって異なる場合があります。私はそれが実装されているかどうか(これがOS "Linux"かOS "Windows"のどちらのアプローチであろうとなかろうと)それがわからない。

たとえば、ユーザーが接続するリモートのクラウドストレージを記述すると、このストレージ(記述されたカーネルとして機能するもの、おそらくそのカーネル)がアクセスを許可するかどうかを決定します。ローカルカーネルはユーザとして動作し、リモートシステムはカーネルのようなものです。

また、「スタックオーバーフロー」についても同様の(または相対的な)質問がありました。What does opening a file actually do? - ここにいくつかの追加情報があります。

関連する問題