ユーザーが特定のフォルダーにアクセスできないようにするフォルダー ロックに似たプログラムを作成しようとしています。DirectorySecurity クラスと AccessRules を使用して、フォルダーの AccessControl を変更しようとしました。
ただし、割り当てた設定は、「セキュリティタブ」に移動して権限を変更することで簡単に変更できます。
ディレクトリへのアクセスを防止する安全な方法はありますか?
ユーザーが特定のフォルダーにアクセスできないようにするフォルダー ロックに似たプログラムを作成しようとしています。DirectorySecurity クラスと AccessRules を使用して、フォルダーの AccessControl を変更しようとしました。
ただし、割り当てた設定は、「セキュリティタブ」に移動して権限を変更することで簡単に変更できます。
ディレクトリへのアクセスを防止する安全な方法はありますか?
この質問に対する私の答えは、「 Windows サービスを使用してフォルダーが作成されないようにするにはどうすればよいですか?」 は、おそらくあなたが望むものを達成するために必要なことです:
残念ながら、私はあなたを助ける方法について十分に知っているわけではありませんが、あなたのWindowsサービスと通信して誰かがサービスが決定できるように、ディレクトリ/ファイルを作成しようとしました。このようにして、誰か/何かが許可されていないファイルまたはフォルダーを作成しようとすると、「アクセスが拒否されました」または選択した別の Win32 エラーが返される可能性があります。
ドライバーを使用する道をたどったとしても、作成/変更がサービス内、つまりカーネルモード外であるかどうかを判断するという面倒な作業を行うのが最善だと思います。
ユーザーがディレクトリまたはファイルの所有者である限り、権限を変更できます。ディレクトリを本当に保護するには、ディレクトリの所有権を変更する必要があります (この所有権の変更には管理者権限が必要です)。ただし、管理者権限を持つユーザーはいつでも所有権を取り戻すことができます。
あなたが企業にいて、人々がマシンの管理者ではない場合、ドメイン管理者として実行され、必要な変更を行う Windows サービスを作成できます。家庭環境では仕方がありません。
ローカル管理者の権限を覆すことができるものは 2 つあります。
ただし、2 番目のオプションは c# では実行できません。最初のオプションは、より Active Directory 構成ソリューションです。
いいえ、コンピューターの管理者アカウントがフォルダーにアクセスしたり、所有権を取得したりするのを防ぐことはできません。
制限されたアカウントを防ぐことができますが (説明したように)、管理者はいつでもセキュリティ設定を変更できます。