Скопировать папку с правами доступа windows

antonvn, очень понравился ваш вопрос!

Более того, я проверил кучу различных способов, и выяснил, что xcopy /o РАБОТАЕТ, возможно,
потому что предварительно был применён фикс реестра вот отсюда support.microsoft.com/kb/310316
который ForceCopyAclwithFile :)

вот логи, я работаю с сервером COMP (OS Win2003), под пользователем user, с администраторскими правами.

C:\test>dir /Q
Volume in drive C has no label.
Volume Serial Number is XXXX-XXXX
Directory of C:\test
21.06.2012 23:22 COMP\user.
21.06.2012 23:22 BUILTIN\Administrators…
21.06.2012 23:22 1 COMP\dmitriy test.txt

C:\test>md d:\test
C:\test>d:
D:\>dir /Q test
Volume in drive D is install
Volume Serial Number is 7846-2FFA
Directory of D:\test
21.06.2012 23:24 COMP\user.
21.06.2012 23:24 BUILTIN\Administrators…

owner папки, как видите я.

D:\>xcopy /o c:\test\test.txt d:\test\
C:\test\test.txt
1 File(s) copied

D:\test>dir /Q
Volume in drive D is install
Volume Serial Number is 7846-2FFA
Directory of D:\test
21.06.2012 23:25 COMP\user.
21.06.2012 23:25 BUILTIN\Administrators…
21.06.2012 23:22 1 COMP\dmitriy test.txt

owner успешно скопирован!

а вот для сравнения БЕЗ /o

D:\test>xcopy c:\test\test.txt d:\test2\
C:\test\test.txt
1 File(s) copied

D:\test>dir /Q d:\test2\
Volume in drive D is install
Volume Serial Number is 7846-2FFA
Directory of d:\test2
21.06.2012 23:27 COMP\user.
21.06.2012 23:27 BUILTIN\Administrators…
21.06.2012 23:22 1 COMP\user test.txt

Ещё раз спасибо за интересный и полезный вопрос!

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

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

разрешения NTFS для папки

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

копирование папки в проводнике

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

вставка файла в проводнике

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

разрешения папки после копирования

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

дополнительные разрешения папки

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

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

К сожалению, проводник Windows не умеет копировать разрешения файловой системы, для этого нам придется воспользоваться альтернативными средствами.

Утилита Icacls

Эта утилита специально предназначена для работы с ACL. В числе прочего она может сохранить список доступа указанного объекта в файл, а затем применить этот список к указанному объекту.

Открываем командную консоль и сохраняем ACL исходного каталога Temp со всем его содержимым (подкаталоги и файлы) в файл tempACL командой:

Icacls C:\Temp\* /save tempACL /t

сохранение списка доступа в файл

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

сохраненный файл ACL

Перенесем созданный файл tempACL на SRV1 и восстановим из него ACL каталога Temp командой:

Icacls C:\temp /restore C:\tempACL

восстановление ACL из файла

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

восстановленные разрешения папки Temp

Утилита Xcopy

Xcopy является продвинутым вариантом команды Copy  и в отличие от нее умеет работать с сетевыми путями, а также копировать сведения о владельце и данные ACL объекта.

В нашем случае для того, чтобы скопировать каталог Temp на SRV1 с сохранением списков доступа воспользуемся командой:

Xcopy C:\Temp \\SRV1\C$\Temp /E /O 

копирование с помощью Xcopy

Total Commander

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

копирование прав доступа с помощью Total Commander

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

права на папку при отсутствии доступа к домену

Для управления NTFS разрешениями в Windows можно использовать встроенную утилиту iCACLS. Утилита командной строки icacls.exe позволяет получить или изменить списки управления доступом (ACL — Access Control Lists) на файлы и папки на файловой системе NTFS. В этой статье мы рассмотрим полезные команды управления ntfs разрешениями в Windows с помощью icacls.

Содержание:

  • Просмотр и изменения NTFS прав на папки и файлы с помощью icacls
  • Бэкап (экспорт) текущих NTFS разрешений каталога
  • Восстановление NTFS разрешений с помощью iCacls
  • Сброс NTFS разрешений в Windows
  • Копирование NTFS прав между папками

Просмотр и изменения NTFS прав на папки и файлы с помощью icacls

Текущие права доступа к любому объекту на NTFS томе можно вывести так:

icacls 'C:\Share\Veteran\'

icacls вывести ntfs разрешения каталога

Команда вернет список пользователей и групп, которым назначены права доступа. Права указываются с помощью сокращений:

  • F – полный доступ
  • M – изменение
  • RX – чтение и выполнение
  • R – только чтение
  • W – запись
  • D – удаление

Перед правами доступа указаны права наследования (применяются только к каталогам):

  • (OI)— наследование объектами
  • (CI)— наследование контейнерами
  • (IO)— только наследование
  • (I)– разрешение унаследовано от родительского объекта

С помощью icacls вы можете изменить права доступа на папку.

Чтобы предоставить группе fs01_Auditors домена resource права чтения и выполнения (RX) на каталог, выполните:

icacls 'C:\Share\Veteran\' /grant resource\fs01_Auditors:RX

icacls предоставить права на каталог

Чтобы удалить группу из ACL каталога:

icacls 'C:\Share\Veteran\' /remove resource\fs01_Auditors

С помощью icacls вы можете включить наследование NTFS прав с родительского каталога:

icacls 'C:\Share\Veteran\' /inheritance:e

icacls управление наследованием

Или отключить наследование с удалением всех наследованных ACEs:

icacls 'C:\Share\Veteran\' /inheritance:r

Также icacls можно использовать, чтобы изменить владельца файла или каталога:

icacls 'C:\Share\Veteran\' /setowner resource\a.ivanov /T /C /L /Q

icacls setowner изменить владельца

Бэкап (экспорт) текущих NTFS разрешений каталога

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

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

icacls 'C:\Share\Veteran' /save c:\ps\veteran_ntfs_perms.txt /t /c

Примечание. Ключ /t указывает, что нужно получить ACL для всех дочерних подкаталогов и файлов, ключ /c – позволяет игнорировать ошибки доступа. Добавив ключ /q можно отключить вывод на экран информации об успешных действиях при доступе к объектам файловой системы.

icacls экспорт ntfs разрешений

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

Successfully processed 3001 files; Failed processing 0 files

Successfully processed 3001 files; Failed processing 0 files

Откройте файл veteran_ntfs_perms.txt с помощью любого текстового редактора. Как вы видите, он содержит полный список папок и файлов в каталоге, и для каждого указаны текущие разрешения в формате SDDL (Security Descriptor Definition Language).

разрешения на файлы и каталоге в формате sddl

К примеру, текущие NTFS разрешения на корень папки такие:

D:PAI(A;OICI;FA;;;BA)(A;OICIIO;FA;;;CO)(A;OICI;0x1200a9;;;S-1-5-21-2340243621-32346796122-2349433313-23777994)(A;OICI;0x1301bf;;;S-1-5-21-2340243621-32346796122-2349433313-23777993)(A;OICI;FA;;;SY)(A;OICI;FA;;;S-1-5-21-2340243621-32346796122-2349433313-24109193)S:AI

Данная строка описывает доступ для нескольких групп или пользователей. Мы не будем подробно углубляться в SDDL синтаксис (при желании справку по нему можно найти на MSDN, или вкратце формат рассматривался в статье об управлении правами на службы Windows). Мы для примера разберем небольшой кусок SDDL, выбрав только одного субъекта:

(A;OICI;FA;;;S-1-5-21-2340243621-32346796122-2349433313-24109193)

A – тип доступа (Allow)

OICI – флаг наследования (OBJECT INHERIT+ CONTAINER INHERIT)

FA – тип разрешения (SDDL_FILE_ALL – все разрешено)

S-1-5-21-2340243621-32346796122-2349433313-24109193 – SID учетной записи или группы в домене, для которой заданы разрешения. Чтобы преобразовать SID в имя учетной записи или группы, воспользуйтесь командой:

$objSID = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-21-2340243621-32346796122-2349433313-24109193")
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])

$objUser.Value

AD sid to user

Или командами:

Get-ADUser -Identity SID

или

Get-ADGroup -Identity SID

Таким образом, мы узнали, что пользователь corp\dvivan обладал полными правами (Full Control) на данный каталог.

Восстановление NTFS разрешений с помощью iCacls

С помощью ранее созданного файла veteran_ntfs_perms.txt вы можете восстановить NTFS разрешения на каталог. Чтобы задать NTFS права на объекты в каталоге в соответствии со значениями в файле с резервной копией ACL, выполните команду:

icacls C:\share /restore c:\PS\veteran_ntfs_perms.txt /t /c

Примечание. Обратите внимание, что при импорте разрешений из файла указывается путь к родительской папке, но не имя самого каталога.

По окончанию восстановления разрешений также отобразится статистика о количестве обработанных файлов:

Successfully processed 114 files; Failed processing 0 files

восстановление ntfs разрешений каталога icacls.exe

С учетом того, что в резервной копии ACL указываются относительные, а не абсолютные пути к файлам, вы можете восстановить разрешения в каталоге даже после его перемещения на другой диск/каталог.

Сброс NTFS разрешений в Windows

С помощью утилиты icacls вы можете сбросить текущие разрешения на указанный файл или каталог (и любые вложенные объекты):

icacls C:\share\veteran /reset /T /Q /C /RESET

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

icacls RESET сбросить ntfs разрешения

Копирование NTFS прав между папками

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

Сначала создайте бэкап NTFS разрешений корня папки:

icacls 'C:\Share\Veteran' /save c:\ps\save_ntfs_perms.txt /c

А замет примените сохраненные ACL к целевой папке:

icacls e:\share /restore c:\ps\save_ntfs_perms.txt /c

Это сработает, если исходная и целевая папка называются одинаково. А что делать, если имя целевой папки отличается? Например, вам нужно скопировать NTFS разрешения на каталог E:\PublicDOCS

Проще всего открыть файл save_ntfs_perms.txt в блокноте и отредактировать имя каталога. С помощью функции Replace замените имя каталога Veteran на PublicDOCS.

вручную заменить целевой каталог при копировании NTFS разрешений папки

Затем импортируйте NTFS разрешения из файла и примените их к целевому каталогу:

icacls e:\ /restore c:\ps\save_ntfs_perms.txt /c

Как скопировать файл вместе с разрешениями

Самородов Федор Анатольевич: Как скопировать файл вместе с разрешениями

Бывает необходимо перенести файлы на новое место, сохранив все выданные на эти файлы разрешения. Как это сделать простым способом? Ведь при копировании в Проводнике все разрешения теряются. Да и при перемещении файлов информация о разрешениях переносится вместе с файлами только в пределах тома.

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

Взгляните на пример использования XCopy:

Пример использования команды XCopy

А если запустить эту утилиту с параметром /?, она расскажет обо всех своих двадцати семи параметрах.

Ближайшие группы

Заказ добавлен в Корзину.

Для завершения оформления, пожалуйста,
перейдите в Корзину!

От какого лица вы будете оплачивать обучение?

По соображениям безопасности, Windows ограничивает доступ пользователей к некоторым данным. Следующие операции бэкапа требуют привилегий администратора:

  • Бэкап жёстких дисков и их восстановление. Только администраторы системы могут получить доступ к жёстким дискам и их образам в Windows.
  • Бэкап реестра Windows и восстановление. Некоторые системные ключи защищены в реестре от несанкционированного доступа.
  • Импорт и экспорт задач Handy Backup. Вы должны иметь права администратора, чтобы экспортировать и импортировать настройки Handy Backup.

Как разрешить доступ к защищённым данным (если возникли проблемы с защитой)

Чтобы использовать функцию бэкапа образа диска или реестра, а также для экспорта/импорта настроек самой программы, вам нужно запустить Handy Backup от имени администратора. Пожалуйста, предпримите следующие шаги:

  1. Убедитесь, что ваш пользовательский аккаунт находится в группе Администраторы.

Права доступа Администратора в Windows

  1. Закройте Handy Backup и Сетевой Агент Handy Backup в системном трее.
  2. Перезапустите программу.

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

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Инструменты kali linux на windows
  • Когда вышла windows 10 21h1
  • Видеомонтаж программа windows movie maker
  • Как изменить размер шрифта на экране в windows 10
  • Обзор windows xp 64 bit