web-dev-qa-db-ja.com

親ディレクトリへのアクセスを許可せずにサブディレクトリへのアクセスを許可する

「所有者」が次の種類のユーザーのグループにアクセス許可を付与したいWindowsファイルサーバーに関するシナリオがあります。

  • \\server\dir1\dir2\dir3:読み取り、書き込み、実行
  • \\server\dir1\dir2:権限なし
  • \\server\dir1:権限なし
  • \\server:読み取りと実行

私の理解(pdate:この段落全体が間違っています!)、Read & Execute権限が必要であるため、これを行うことはできませんオペレーティングシステムが子ディレクトリを「参照」してそれらにアクセスできるようにするために、ディレクトリチェーン内のすべての親ディレクトリに付与されます。この権限がないと、サブディレクトリへの完全なアクセス権があっても、ネストされたディレクトリにアクセスしようとすると、セキュリティコンテキストトークンを取得できません

データを\\server\dir1\dir2\dir3から\\server\dir4に移動せずに、これを回避する方法を探しています。

私が考えた回避策の1つは、それが機能するかどうかはわかりませんが、\\server\dir4への参照であるリンクまたはジャンクション\\server\dir1\dir2\dir3を作成することです。ユーザーがRead & Executeまたは\\server\dir1\dir2に対する\\server\dir1権限を持っていない場合、この目的のために使用可能なオプション(存在する場合)のうちどれが機能するかわかりませんが、私の知る限り、オプションは次のとおりです。

  • NTFSシンボリックリンク
  • ジャンクション、
  • ハードリンク。

だから質問:

  • これらの方法のいずれかが私の目標を達成するのに適していますか?
  • 上記に記載していないディレクトリをリンクまたは間接的に参照する他の方法はありますか?
  • Read & Execute\\server\dir1または\\server\dir2に許可せずにアクセスを許可するdirectソリューションはありますか\\server\dir1\dir2\dir3
12
allquixotic

あなたはあなたの元の仮定に誤りがあり、それがあなたの質問の残りの部分を悲観的にしています。

ユーザーがdir1およびdir2で必要とする最小限の権限はTraverse Directoryです。ただし、これはユーザーにとって問題になる可能性が高いため、Traverse DirectoryandList Foldersをお勧めします。上位2つのディレクトリを移動してdir3にアクセスできるため、より多くの権限が付与されますが、上位2つのディレクトリに存在するファイルも確認できません。

Read & ExecuteModifyなどの権限は、個々の権限のコレクションにすぎません。それらは最も一般的に使用されるため、最初に目にするものです。この状況のように非常に細かくする必要がある場合は、Advancedボタンをクリックして、そこにリストされているオプションを調べます。

14
MDMarra

驚くべきことに、個人が少なくともRのアクセス許可を持つサブフォルダーへの完全なパスを持っている場合、親フォルダーのいずれにもアクセスする必要はなく、トラバースすらありません。彼らは単にUNCを使用してそれにアクセスできます。 (もちろん、共有に対する読み取りアクセス許可を持っている必要があります。アクセスしたいレベルより上のフォルダではありません)。

言われたときは信じていませんでしたが、テストで証明されました。

これは、私がWindowsの世界で許可について知っていると私が思っていたものとは逆であり、多くの人にとっては驚きだと思います。

\ server\folder1\folder2\folder3

Folder1とfolder2にBilboの権限がまったくないが、Bilboが(たとえば)folder3を変更している場合、\ server\folder1\folder2\folder3は彼をそこに連れて行き、問題ありません。

12
embeetee

MDMarraと同様のソリューションの1つは、NTFSアクセス許可を次のように設定することです。

  1. dir1:GrantList folder content(Traverse folder/execute file、List folder/read data、Read attributes、Read extended attributes 、読み取り権限)
  2. しかし、このフォルダーのみを選択してドロップダウンに適用します
  3. dir2:許可フォルダの内容のリストおよび適用このフォルダのみ
  4. dir:必要な読み取り/書き込み権限を付与し、このフォルダー、サブフォルダー、およびファイルに適用しますまたはサブフォルダーとファイルのみ

最終結果は、ユーザー/グループが個々の親フォルダーを読み取り、他のフォルダーやファイルなしで子フォルダーにドリルダウンできることです。

1
DrewsWiz

したがって、ブラウジング(つまり、Windowsファイルエクスプローラー)を介して単にフォルダーを移動するために最低限必要なアクセス許可について、最終的なテスト済みの回答を得たいと思ったので、次の環境でこれをテストしました。これは、物事をしっかりとロックしたい人のための結果です。

私は本番環境でこれをしないでテストしましたが、「標準」の十分にテストされた走査権テンプレートを削減することによる奇妙な副作用がないか確認しました。

  • トラバースフォルダー
  • リストフォルダー
  • 属性の読み取り
  • Extを読みます。の属性
  • 読み取り許可

...これは基本的に、「このフォルダ」に限定された通常の「読み取りと実行」権限です。とはいえ、小規模なテストはこれまでのところ、サーバー上のファイルを単に移動、コピー、および削除するユーザーと、サーバーのドキュメントのコピーなどから完全に作業するユーザーにとってはまったく問題ありません。


環境:

  • Server:Windows 2008 R2-ドメインポリシーとして構成された、グループポリシーではなく、ユーザー権利に関連する変更はありません、AD統合DNS、非常に標準的/基本的なセットアップ。
  • Client:Windows 7 SP1-VMへのクリーンインストール、サーバーへの接続が確実に行われるように、変更の合間に再起動毎回完全に再現。
  • どちらのインストールも少なくとも2017年後半にパッチが適用されているため、Windowsタイムラインのこの時点で非常に組み込まれている、アクセス許可に関連するすべてのものが最新の可能性があります。
  • これは、VMで永続的なネットワークドライブ(\ server\share-> S :)としてマウントされた共有フォルダーにアクセスしていました。共有アクセス許可は、Authenticated Usersグループの読み取りと変更でした。このグループには、テストユーザーと、ある時点でアクセスが必要になる可能性が高いその他すべてが含まれます。
  • 変更するたびに、VMを再起動し、ファイルエクスプローラーを開いて、通常どおりに共有を参照し、テストユーザーがこれらのトラバーサル権限を持っているかどうかを確認しました。

結果:

  • ルートフォルダーで必須:ListFolder-ReadData + ReadAttributes(2x権限)
  • サブフォルダーで必要:ListFolder-ReadData(1x権限)
  • オプション:TraverseFolder--ExecuteFile

    ->このオプションの権限は、「走査チェックのバイパスユーザー」権限が99%の状況でデフォルトでオンになっているため、明示的に許可されていない場合にのみ重要です。別の言い方をすると、 "バイパス走査チェック"ユーザー権利(NTFSファイル/フォルダーのアクセス許可ではなく、グループポリシーで公開)を有効にすると、この特権が完全に取り除かれ、この特権はデフォルトですべての場所で有効になります。注:この権利を明示的に拒否すると、その特定のインスタンスでトラバースチェックのバイパスユーザー権利が有効にならないかどうかはテストしていませんが、そうなる可能性があります)。

補足情報: "Bypass Traverse Checking"ユーザー権利を使用すると、サブフォルダにパッシブにトラバースできますが、深さはいくつでも深く、直接アクセスできます(つまり、アクセス許可はそのファイル/フォルダに設定されていますが、必ずしも他のどこにも設定されているわけではありません)ファイルパス)。

0
Rook