Запретить доступ к каталогу с помощью C # - PullRequest
4 голосов
/ 28 февраля 2010

Я пытаюсь создать программу, аналогичную Folder Lock, которая запрещает пользователям доступ к определенной папке. Я попытался с помощью класса DirectorySecurity и AccessRules изменить AccessControl для папок.

Однако настройки, которые я назначаю, можно легко изменить, перейдя на вкладку «Безопасность» и изменив разрешения.

Есть ли какой-нибудь безопасный способ запретить доступ к каталогам?

Ответы [ 4 ]

3 голосов
/ 28 февраля 2010

Я думаю мой ответ на этот вопрос: " Как я могу предотвратить создание папки с помощью службы Windows? ", вероятно, вам нужно сделать, чтобы добиться что хочешь:

К сожалению, я нигде не знаю достаточно близко о том, как помочь вам, но я вполне уверен, что вам понадобится либо написать, либо получить файл Драйвер системного фильтра , который может общаться с вашим сервисом Windows сказать, что кто-то пытался создать каталог / файл так, чтобы ваш сервис может принять решение за Это. Таким образом, когда кто-то / что-то пытается создать файл или папку это не позволено, они могут быть вернул "Отказано в доступе" или другое Ошибка Win32 на ваш выбор.

Если вы пошли по маршруту использования водитель, я думаю, все равно будет лучше сделать тяжелую работу, если решить создание / модификация в сервис, то есть вне режима ядра.

1 голос
/ 28 февраля 2010

Есть две вещи, которые могут отменить права локального администратора.

  • Политика домена (но ваш компьютер должен быть членом домена)
  • Процесс, работающий с привилегиями SYSTEM (например, с драйверами). Именно так работают антивирусные сканеры и руткиты, они анализируют запрос вашей файловой системы до того, как результаты достигнут пользователя, и перехватывают его, если это необходимо.

Но второй вариант, который вы не можете сделать с помощью c #, и первый вариант - это скорее решение для настройки Active Directory.

1 голос
/ 28 февраля 2010

Пока пользователь является владельцем каталогов или файлов, он может изменять разрешения. Вам нужно изменить владельца каталогов, чтобы действительно защитить каталоги (и для этого изменения владельца требуются права администратора). Но пользователь с правами администратора всегда может вернуть право собственности.

Если вы работаете на предприятии, и люди не являются администраторами своих компьютеров, вы можете написать службу Windows, которая запускается как администратор домена и вносит необходимые изменения. В домашней обстановке нет пути.

0 голосов
/ 28 февраля 2010

Нет, вы не можете запретить учетной записи администратора компьютера получить доступ к любой папке или стать ее владельцем.

Вы можете запретить ограниченные учетные записи (как вы уже описали), но администратор всегда сможет изменить настройки безопасности.

...