2010-02-27 3 views
4

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

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

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

+1

Я бы предположил, что, поскольку у него есть возможность сильно злоупотреблять вредоносными программами, нет возможности предотвратить доступ к пользователю с правами администратора. – Wilhelm

+0

Мне было интересно, как эти приложения, такие как Folder Lock, MyLockBox и т. Д., Могут скрывать папки? Любой, кто может дать мне какую-то идею? – Mako

ответ

3

Я думаю my answer на этот вопрос: «How could I prevent a folder from being created using a windows service?», вероятно, что вам нужно сделать, чтобы достичь того, чего вы хотите:

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

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

0

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

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

1

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

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

1

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

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

Но второй вариант, который вы не можете сделать с C#, а первый вариант - это решение для конфигурации Active Directory.