как обойти недостатки дизайна ntfs move / copy?

<p>как известно любому, кто имел дело с разрешениями файлового сервера, ntfs обладает интересной особенностью/недостатком дизайна, известной как проблема перемещения/копирования.</p><p>как объяснено <a href="http://support.microsoft.com/kb/310316">в этой статье ms kb</a> , разрешения для папки или файла не наследуются автоматически от родительского объекта, если папка перемещена, а источник и место назначения находятся на одном и том же томе ntfs. разрешения наследуются, если папка копируется или если источник и место назначения находятся на разных томах.</p><p>вот быстрый пример:</p><p>у вас есть две общие папки на одном и том же томе ntfs, которые называются "техники" и "менеджеры". группа техников имеет доступ rw к папке техников, а группа менеджеров имеет доступ rw к папке "менеджеры". если у кого-то есть доступ к обоим, и они перемещают подпапку из папки "менеджеры" в папку "техники", перемещаемая папка по-прежнему доступна только пользователям в группе "менеджеры". группа "техники" не может получить доступ к подпапке, даже если она находится в папке "техники" и должна наследовать разрешения сверху.</p><p>как вы можете себе представить, это вызывает обращения в службу поддержки, тикеты и бесполезные циклы при решении этих проблем с конечным пользователем, не говоря уже о гнезде разрешений для крыс, которое вы можете получить, если пользователи часто перемещают папки между различными защищенными папками/областями тот же объем.</p><p>вопросы:</p><p>каков наилучший способ обойти этот недостаток дизайна ntfs и как вы справляетесь с ним в вашей среде?</p><p><em> я знаю, что в связанной статье базы знаний говорится о некоторых ключах реестра, чтобы изменить поведение windows explorer по умолчанию, но они на стороне клиента и требуют, чтобы пользователи имели возможность изменять разрешения, которые я бы назвал большинство сред - это не стартер, если вы хотите сохранить контроль над разрешениями вашего файлового сервера (и ваше здравомыслие как системного администратора). </em></p>

<p>мой подход заключается в том, чтобы не использовать файловые/каталоговые права доступа; используйте разрешения на уровне общего файлового ресурса и установите для диска данных файловой системы всего сервера "полный доступ для каждого" (который становится спорным).</p><p>за годы (10+) я обнаружил, что разрешения ntfs более сложны и приводят к большему количеству ошибок. если права доступа установлены неправильно или наследование нарушено, вы открываете данные, и их сложно найти и увидеть. кроме того, как вы говорите, вы столкнулись с проблемой перемещения/копирования.</p><p>места, где вы должны использовать acl на уровне каталогов/файлов; я не знаю другого решения, кроме проверки здоровья на регулярной основе.</p>

<p>ну, это не совсем недостаток. это правило для обработки разрешений при перемещении файлов действует со времени как минимум бета-версии 2 nt3.1 (хотя, очевидно, не наследование, поскольку это было добавлено только в windows 2000). это так же хорошо, как и любая другая функция windows. я очень сочувствую вашей точке зрения, так как мало кто из нас не сгорел на этом этапе. но это то, что сисадмин быстро усваивает.</p><p>jr</p>

<p>мы использовали ntfs начиная с nt 3.51, и хотя мы видели эту "проблему" (как и почти все), она не доставила нам особых проблем:</p><ul> <li>мы всегда говорим людям копировать файлы, если им нужно переместить их из одного общего каталога в другой. "удерживая нажатой клавишу ctrl при перетаскивании и убедитесь, что маленький + показывает", это обычная фраза.</li> <li>наши общие папки имеют довольно простую структуру, и общие папки, которые мы создаем, не слишком часто пересекаются между группами, поэтому люди с большей вероятностью захотят скопировать файлы.</li> <li>мы видим проблему главным образом в нашем "обычном" пространстве - папках, где каждый может читать/писать, но эти каталоги в основном недолговечны, поэтому проблема исчезает, когда они очищаются.</li> </ul>

<p>обходные пути, которые я могу придумать:</p><ul> <li>найти способ заставить папки с разными разрешениями находиться на разных томах ntfs</li> <li>создайте запланированное задание (один раз в час или один раз в день, в зависимости от частоты запросов поддержки), которое будет проходить через папки и сбрасывать все разрешения, чтобы они были такими же, как и у верхнего уровня. это не идеально, тем более, если в папках много файлов, но это исправит проблему, если не будет хорошего решения, такого как исправление реестра на стороне сервера. команда, которую вы захотите посмотреть, называется "cacls", которую вы затем можете добавить в командный файл.</li> </ul><p>отказ от ответственности - я пришел из unix-фона (и реализовал последний, чтобы исправить различные недостатки разрешений - это кажется странным, но делает работу), так что может быть гораздо лучше исправить.</p>

<p>я использую групповую политику/политики безопасности/файловую систему, чтобы отслеживать сложные разрешения. (никогда не используйте "заменить разрешения" в политике).</p><p>запланируйте cacls для сброса всех разрешений в течение ночи, а затем gpupdate/force для повторного применения разрешения из политики. работает как шарм.</p>

<p>при переходе от имени администратора я использую xcopy/s/e/c/h/r/k/y - все, кроме владения файлами и acl, это означает, что наследование acl включается автоматически. никогда не приходилось сталкиваться с ситуацией, когда пользователь хотя переехал.</p>

<p>начиная с windows 7 (или, возможно, windows vista), разрешения для папки или файла do наследуются от родителя, если папка перемещена, а источник и место назначения находятся на одном и том же томе ntfs - если файл или папка копируются через проводник. в более ранних ос вы можете использовать far manager - он позволяет включить наследование разрешений от места назначения (наряду с множеством других функций). хотя far может показаться не дружелюбным для обычного пользователя.</p>

<p>очень простой обходной путь - просто заархивировать файлы и распаковать их в каталог назначения.</p>