1. Администрация SafeZone приветствует вас на нашем форуме!
    Если вы больше не желаете видеть рекламу при просмотре тем и сообщений - то достаточно просто зарегистрироваться. Для зарегистрированных пользователей реклама не отображается.
    Если у вас возникли проблемы с регистрацией на форуме - то вы можете сообщить об этом с помощью этой формы без авторизации,администрация форума обязательно отреагирует на вашу проблему.
    Скрыть объявление

Статья Сохранение разрешений NTFS при копировании или перемещении файлов

Тема в разделе "FAQ по Пакетным файлам CMD/BAT", создана пользователем Dragokas, 10 мар 2014.

  1. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.936
    Симпатии:
    4.816
    Баллы:
    338

    В файловой системе NTFS каждый объект (файл или папка) имеет свой список контроля доступа (Access Control List, ACL), в котором содержится информация о том, кто (или что) имеет доступ к объекту и какие операции разрешено (или запрещено) этому субъекту проводить над объектом. А что происходит с ACL при копировании или перемещении объекта? Попробуем это выяснить …

    В качестве подопытного возьмем папку Temp в корне диска C. Откроем свойства папки и посмотрим ее разрешения. Как видите, в списке доступа есть только группа локальных администраторов и пользователь kirill (то есть я :)).

    right1.

    Теперь возьмем нашу папку.

    right2.

    И помощью Проводника скопируем ее на компьютер SRV1, также в корень диска C.

    right3.

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

    right4.

    Для того чтобы понять, откуда взялись новые разрешения, пройдем в дополнительные параметры безопасности папки (кнопка Advanced). Как видно из рисунка, все разрешения папки Temp унаследованы от диска С.

    right5.

    В этой ситуации нет ничего удивительного. По умолчанию разрешения NTFS сохраняются только при копировании\перемещении в пределах одного логического диска, или тома. Если же объект перемещается на другой диск того же (или другого) компьютера, то все разрешения заменяются наследуемыми от родительского объекта, которым в нашем случае и является диск C компьютера SRV1.

    В нашем случае скопирована всего лишь одна папка с несколькими файлами, поэтому при необходимости восстановить утерянные разрешения несложно. А если подобное случиться при переносе серьезного файлового ресурса с высоким уровнем вложенности и сложной структурой разрешений NTFS, заданных вручную ?

    К сожалению, проводник Windows не умеет копировать разрешения файловой системы, для этого нам придется воспользоваться альтернативными средствами.
     
    Последнее редактирование: 10 мар 2014
    orderman и Kиpилл нравится это.
  2. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.936
    Симпатии:
    4.816
    Баллы:
    338
    Утилита Icacls

    Эта утилита специально предназначена для работы с ACL. В числе прочего она может сохранить список доступа указанного объекта в файл, а затем применить этот список к указанному объекту.
    Открываем командную консоль и сохраняем ACL исходного каталога Temp со всем его содержимым (подкаталоги и файлы) в файл tempACL командой:
    Код (Text):
    Icacls C:\Temp\* /save tempACL /t
    right6.


    По умолчанию утилита сохраняет файл в профиле пользователя — C:\Users\Имя_пользователя. Это обычный текстовый файл, который при желании можно открыть в Блокноте.


    right7.

    Перенесем созданный файл tempACL на SRV1 и восстановим из него ACL каталога Temp командой:
    Код (Text):
    Icacls C:\temp /restore C:\tempACL
    right8.

    Затем еще раз посмотрим разрешения скопированой папки Temp и увидим, что справедливость восторжествовала :) и исходные разрешения восстановлены.

    right11.
     
    Drongo, orderman и Kиpилл нравится это.
  3. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.936
    Симпатии:
    4.816
    Баллы:
    338
    Утилита Xcopy

    Xcopy является продвинутым вариантом команды Copy и в отличие от нее умеет работать с сетевыми путями, а также копировать сведения о владельце и данные ACL объекта.
    В нашем случае для того, чтобы скопировать каталог Temp на SRV1 с сохранением списков доступа воспользуемся командой:
    Код (Text):
    Xcopy C:\Temp \\SRV1\C$\Temp /E /O
    right9.
     
    Drongo, orderman и Kиpилл нравится это.
  4. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.936
    Симпатии:
    4.816
    Баллы:
    338
    Total Commander

    Те, кто боится не любит работать в командной строке, могут воспользоваться файловым менеджером стороннего производителя, например Total Commander. В нем при копировании\переносе есть возможность скопировать разрешения NTFS, просто отметив галочкой чекбокс «Copy NTFS permissions».

    right10.

    И в завершение один важный момент, который учитывать при перемещении файловых ресурсов — разрешения NTFS можно свободно переносить только в пределах одного домена или леса доменов. Если к примеру скопировать папку со списком доступа на компьютер, не входящий в домен, то получим интересную ситуацию: ACL перенесен, но в локальной базе учетных записей нет такого пользователя. В этом случае при просмотре разрешений мы увидим примерно такую картину:

    right12.
     
    Drongo, Phoenix, orderman и ещё 1-му нравится это.
  5. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.960
    Симпатии:
    5.377
    Баллы:
    783
    Как быть с разрешениями для реестра?
    Или хотя бы получить список назначенных прав?
     
  6. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.936
    Симпатии:
    4.816
    Баллы:
    338
    Koza Nozdri, родные средства ком.строки этого не позволяют.
    Используй средство SubInACL из состава Windows Resource Kit.
    Также посмотри в сторону утилит Руссиновича:

    Также тебе будет интересна статья про сброс прав на сис. файлы и реестр: http://www.carrona.org/resetreg.html
    Будь внимателен, Microsoft не рекомендует использовать этот способ на ОС выше XP. Тем не менее, John Carrona об этом не говорит. Может, ему виднее.

    Для поиска скрытых ключей будет полезна утилита RegDelNull
     
    Kиpилл нравится это.
  7. Phoenix
    Оффлайн

    Phoenix Активный пользователь

    Сообщения:
    2.015
    Симпатии:
    1.988
    Баллы:
    283
    Dragokas, Давно интересовал этот вопрос. Спасибо.
    Какие могут быть последствия, как это сказывается на безопасности системы или работоспособности файлов ? (ну вот только что скачал с ресурсов http://safezone.cc/resources/mbam-clean.79/ в Мои документы - можешь прокоментировать ?)
     

    Вложения:

    • security.png
      security.png
      Размер файла:
      132,8 КБ
      Просмотров:
      28
    • resource-sz.png
      resource-sz.png
      Размер файла:
      141,8 КБ
      Просмотров:
      28
    Последнее редактирование: 10 мар 2014
  8. Гимаев Наиль
    Оффлайн

    Гимаев Наиль Активный пользователь

    Сообщения:
    59
    Симпатии:
    98
    Баллы:
    58
    Ни когда не испытывал особых проблем из-за изменения прав при копировании.
    А вот из-за сохранения прав проблемы были часто.
    К примеру уволился сотрудник. Берёшь его "Мои документы" и перекидываешь другому сотруднику, который принял у него дела.
    А новый сотрудник только через неделю сообщает, что не может открыть эти документы. И приходится выправлять права, чтобы человек смог работать с тем что лежит в его собственных "Моих документах".

    Когда есть возможно работать с GUI я бы пользовался Total Commander.
    А из командной строки я бы использовал winrar, благо он умеет сохранять и права и даже файловые потоки NTFS.
    --- Объединённое сообщение, 7 июл 2014, Дата первоначального сообщения: 7 июл 2014 ---
    Вижу только один случай когда перенос прав между компьютерами может причинить вред.
    Это когда при обратном копировании восстанавливаются права у пользователя, которому эти права понизили в целях безопасности.
    В остальных случаях наличие прав у несуществующих пользователей на файл ни как не отражается на безопасности.
    --- Объединённое сообщение, 7 июл 2014 ---
    Больше всего проблем с правами доставляет Microsoft Office. Если открыть в Excel файл который лежит в сетевой папке, то он автоматически становится личным файлом последнего человека, который работал с этим файлом. Каждый раз приходится выправлять права, чтобы у всех хватало прав на работу с этим файлом.
     
    Dragokas, Drongo, Sandor и 3 другим нравится это.

Поделиться этой страницей