Запретить доступ к каталогу с помощью C#
Я пытаюсь создать программу, аналогичную Folder Lock, которая запрещает пользователям доступ к определенной папке. Я попытался с помощью класса DirectorySecurity и AccessRules изменить AccessControl для папок.
Однако настройки, которые я назначаю, можно легко изменить, перейдя на вкладку "Безопасность" и изменив разрешения.
Есть ли какой-нибудь безопасный способ предотвратить доступ к каталогам?
4 ответа
Я думаю, что мой ответ на этот вопрос: " Как я могу предотвратить создание папки с помощью службы Windows?", Вероятно, то, что вам нужно сделать, чтобы достичь того, чего вы хотите:
К сожалению, я не знаю достаточно близко о том, как вам помочь, но я вполне уверен, что вам нужно будет либо написать, либо получить драйвер фильтра файловой системы, который может взаимодействовать с вашей службой Windows, чтобы сообщить, что кто-то попытался создать каталог / файл, чтобы ваш сервис мог принять за него решение. Таким образом, когда кто-то / что-то пытается создать недопустимый файл или папку, ему может быть возвращено "Отказано в доступе" или другая ошибка Win32 по вашему выбору.
Если бы вы пошли по пути использования драйвера, я бы подумал, что все равно лучше всего сделать тяжелую работу, решая, будет ли создание / изменение в сервисе, т.е. вне режима ядра.
Есть 2 вещи, которые могут отменить права локального администратора.
- Политика домена (но ваш компьютер должен быть членом домена)
- Процесс, работающий с привилегиями SYSTEM (например, с драйверами), именно так работают антивирусные сканеры и руткиты, они анализируют запрос вашей файловой системы до того, как результаты достигнут пользователя, и перехватывают его, если это необходимо.
Но второй вариант вы не можете сделать с помощью C#, а первый вариант - это скорее решение для настройки Active Directory.
Пока пользователь является владельцем каталогов или файлов, он может изменять разрешения. Вам нужно изменить владельца каталогов, чтобы действительно защитить каталоги (и для этого изменения владельца требуются права администратора). Но пользователь с правами администратора всегда может вернуть право собственности.
Если вы находитесь на предприятии, и люди не являются администраторами своих компьютеров, вы можете написать службу Windows, которая будет работать как администратор домена и вносить необходимые изменения. В домашней обстановке нет пути.
Нет, вы не можете запретить учетной записи администратора компьютера доступ или владение какой-либо папкой.
Вы можете запретить ограниченные учетные записи (как вы уже описали), но администратор всегда сможет изменить настройки безопасности.