Windowsの巡回検査バイパスと同等のUnix/Linux

Windowsの巡回検査バイパスと同等のUnix/Linux

Windows には次の権限があります。「バイパス通過確認」(また〜として知られている通知権限の変更)。これにより、システムは、ユーザーが[潜在的に]子オブジェクトにアクセスできるように、親オブジェクトのACLチェックをバイパスすることができます。

次の例が役に立ちます。

<file system>
  |
  +-- john.doe
      |
      +-- public

上記の例では、通常、ユーザーがすべてのjohn.doe権限を持つようにディレクトリを制限します(そのグループには読み取り権限がある可能性があります)。しかし、Doeのpublic目次は誰でも読むことができ、誰でも彼が共有しているコンテンツを見ることができます。

Windowsでは、上記のシナリオを容易にするために巡回検査をバイパスすることが使用されます。

Unix / Linuxは、Windowsの巡回検査バイパスと同じ機能を提供しますか?それでは何ですか?

publicそうでない場合は、親ディレクトリのセキュリティホールを開かずにこのディレクトリへのアクセスをどのように提供できますか?


興味深いことに、私のすべてのUbuntuシステムにはホームディレクトリが制限されていないので、そのディレクトリにpublicアクセスできる人は誰でもアクセスできます。ゲストアカウントも同様です!また、ゲストアカウントはルートディレクトリを調べることもできます。しかし、デスクトップとサーバーのゲストアカウントは「別のワーム缶です...」


私は最近これを見つけました。Cryptree:暗号化されたファイルシステムのフォルダツリー構造。私はこの声明が正しくないと思います(例:「バイパス通過確認」デモ):

アクセス権の上向き継承: フォルダへのアクセス権を明示的に付与することは、フォルダの親フォルダ名へのアクセス権を継承することを意味します。たとえば、Alice に /bob/projects/ にある Documents/ フォルダへの再帰的なアクセス権を付与した場合、Alice は自動的に親フォルダ /bob/ および /bob/projects/ の名前を表示できるようにする必要があります。親フォルダの名前が表示されないため、document /への正しいパスを再設定できません。

答え1

Linuxには「Bypass Traversal Check」とまったく同じ機能はありません。同じ方針を達成するために異なる手段を使用します。

伝統的に、ユーザーのホームディレクトリは一般的に読むことができます。ユーザーは個人用ファイルのサブディレクトリを作成し、それを個人用に設定できます。 Unix権限(最新のACLスキームを含む)の優れた特徴は、パスのコンポーネントがプライベートである場合、ファイル権限に関係なく(つまり、巡回チェックをバイパスする方法はありません...)ファイルがプライベートであることです。したがって、個人用ディレクトリ内のファイルが誤って公開される危険性はありません。アプリケーションは次のようにファイルを生成します。マスクデフォルトでは、ユーザーがumaskを077に設定すると、そのファイルはデフォルトで非公開になります(デフォルトのumaskは伝統的に022なので、ファイルを一般的に読み取ることはできますが書き込みはできません)。ファイルの内容がプライベートであると予想されるアプリケーション(電子メールなど)は、umaskに関係なくプライベートファイルを生成します。

他のユーザーに個人ディレクトリ内のファイルへのアクセスを許可する方法があります。ファイルが移動されると、そのファイルを開いたままにしたすべてのプロセスがそのファイルへのアクセスを維持します。したがって、個人用ディレクトリに作成されたファイルは安全ですが、そのディレクトリに移動されたファイルはまだ開いている可能性があります。これは、ファイルを移動した後にファイルにデータを書き込む場合にのみ意味があります。

カタログビューは、異なる権限を使用して異なる場所に作成できます。ビューに対する権限は、実際のディレクトリを通過する権限の影響を受けず、ビューの場所、ディレクトリ自体とそのファイル、(該当する場合)パラメータを通過する権限によってのみ影響されます。より。次のコマンドを使用してビューを作成できます。ファイルシステムバインディングファイルシステムを使用するか、Linuxバンドルマウントを使用してください。バラよりルート以外のプロセスがセキュリティを損なうことなくすべてのホームディレクトリにアクセスできるようにしますか?ユーザーが他のユーザーのホームディレクトリを読むことを許可するそして特定のユーザーだけがマウントされたパーティションの1つのNTFSフォルダにアクセスできるようにする方法は?いくつかの例を見てください。

答え2

ある程度:

Unix特権モデルでは、rディレクトリ内のビットを介してその内容を一覧表示でき、これらのxビットを使用してディレクトリへのハンドルを取得できます。ハンドルを使用すると、名前がわかっている場合はそのディレクトリ内のファイルとディレクトリを参照できます。ハンドルの使用はオブジェクトのinode権限に依存します。

したがって、説明するシナリオではx権限を付与します。他の人、誰もがディレクトリに移動している間にそのディレクトリを通過できるようにしますpublic。ただし、ディレクトリ内の他のすべてのエントリにはロックに設定された権限が必要です。他の人、確かに。

これはpublic_html、ユーザーのホームディレクトリにあるディレクトリの一般的な設定です。

関連情報