7

FileSystemWatcherを試している間、私はファイルとフォルダに対するユーザーアカウントのアクセス許可を何らかの形で超えていることを知りました。にアクセスすることさえできません。FileSystemWatcherがファイルシステムのアクセス許可を超えています

私はそのことについて二つの質問があります。

1)なぜこれが起こるんか?
2)これはAD設定の問題ですか?どうすれば修正できますか?
3)これらのファイルを収集する方法はありますか?FileSystemInfoを作成してファイルに関する詳細情報を得る方法はありますか?制限の

私の知る限りが試したよう

、唯一FileSystemWatcherの免疫、私はそれ以上の他の事を実行することはできません、ここで私が試したもののリストがあります:

  • File.Exists
  • Directory.Exists
  • DirectoryInfoのインスタンス見つかったファイルに見つかったファイルの
  • のFileInfoインスタンス
  • File.Copy
  • File.Delete

更新:彼が推薦しているものに似たのsomethinではなく、WindowsのAPIを介して、ヘルゲのソリューションを試してみましたが、コマンドプロンプト経由:

のrobocopy/Bの\ MYSERVER \フォルダのC: \ somefolder

最高のコマンド名。

robocopyで/ Bが "バックアップモード"を表していることを確認できます。これは、このセキュリティを上回る原因となるヘッジが示唆しているものです。

私は何かを試してみます。私は、FileSystemWatcherが私が開く権限を持っていないフォルダを見ることができるのはどういうものかを知りたいと思います。なぜ、私はFileSystemWatcherをブロックする方法と、見つかったファイルを収集する方法の両方を学びたいと思っています。

私は個人的なアカウントを持っていた場合、私はアンケートを行います。どうか、誰かが私を助けることができますか?私は、解決策についてのブログ記事を書くつもりです。これは、将来同じ疑いを持つ人を助けるかもしれません。

+0

ファイルシステムのアクセス許可は、Active Directoryとは何の関係もありません。これらはローカルシステムの機能です。 –

+2

@Helge私は同意しません。グループやユーザーのフォルダへのアクセス許可を拒否した場合、私はこのフォルダで何をしても何も表示できないようにします。私にとっては、これは穴であり、バグであり、修正する必要があります。 – DevexPP

+0

しかし、ローカルシステムの権限の強制はActive Directoryとは関係ありません。マシンがドメインに参加しているかどうかは、おそらくこの問題には関係ありません。 –

答えて

4

this answer on SOによると、FileSystemWatcherはAPI関数ReadDirectoryChangesWに基づいています。それが本当であれば、それはあなたが目撃した行動を説明し、なぜそれがセキュリティホールではないのかを説明します。

documented on MSDN ReadDirectoryChangesWには、SeBackupPrivilege権限が必要です(これは、パラメータFILE_FLAG_BACKUP_SEMANTICSからCreateFileに要求されます)。そのモードでファイルを開くと、返されたハンドルはファイルへのフルアクセスを許可し、アクセスチェックを回避します。この機能は、アクセス許可に関係なくディスク上のすべてを読み取ることができるようにする必要があるbackup programs用に設計されています。

これはセキュリティホールではありません。これが機能するために必要な特権SeBackupPrivilegeは、デフォルトで管理者のみに付与されています。管理者、そして実際にはマシンに物理的にアクセスできる人は、暗号化されていない限り、常にすべてのファイルの制御と読み取りが可能です。

バックアップモードでファイルにアクセスするために使用できる機能は次のとおりです。読み取り専用のBackupReadが少なくともあります。列挙はFindFirstFile/FindNextFileで簡単に可能です。もちろん、これには実際のWindows APIが必要であり、.NETのファイルシステムの機能が損なわれているわけではありません。

+0

制限付きのユーザーアカウントでFileSystemWatcherが動作しないと言っていますか? –

+0

私は分かりません。しかし、私が確信しているのは、ファイルについての情報があれば、閲覧権限がないので、バックアップ権限が必要だということです。おそらく、利用可能な場合にのみ権限を使用します。 –

+0

もっと徹底的にテストし、ここで見つけたものを報告します! – Marcelo

関連する問題