Назад | Перейти на главную страницу

Windows 2003 Server - права доступа к файлам

У меня есть веб-сервер Windows 2003 с деревом папок, содержащим около 100 ГБ небольших изображений. Мне нужно обновить разрешения для этой папки, чтобы добавить нового пользователя с доступом. Я попытался сделать это, щелкнув правой кнопкой мыши папку и добавив нового пользователя, но процесс так и не завершился. Я оставил его работать примерно на час, но это начало сильно влиять на производительность сервера. Есть ли другой способ изменить разрешения для этих папок, не влияя на производительность сервера?

Большое спасибо Ник

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

Щелкните правой кнопкой мыши папку -> Свойства -> Безопасность -> Дополнительно. Убедитесь, что установлен флажок «Разрешить наследуемые разрешения ....». Добавьте пользователя и укажите его разрешения.

Другой способ - программно установить разрешения. Вот это пример кода на C # это показывает, как установить ACL. Программный способ более гибкий: вы можете периодически ждать, прежде чем устанавливать разрешения безопасности. Следовательно, производительность сервера не пострадает.

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

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