Збереження дозволів NTFS при копіюванні або переміщенні файлів.
В файлової системи NTFS кожен об'єкт (файл або папка) має свій список контролю доступу (Access Control List, ACL), в якому міститься інформація про те, хто (або що) має доступ до об'єкта і які операції дозволено (або заборонено ) цього суб'єкту проводити над об'єктом. А що відбувається з ACL при копіюванні або переміщенні об'єкта? Спробуємо це з'ясувати ...
В якості піддослідного візьмемо папку Temp в корені диска C.Відкриємо властивості папки і подивимося її дозволу. Як бачите, в списку доступу є тільки група локальних адміністраторів і користувач kirill (тобто я:)).
Тепер візьмемо нашу папку.
І допомогою Провідника скопіюємо її на комп'ютер SRV1, також в корінь диска C.
Якщо подивитися дозволу скопійованої папки, то ми побачимо, що вони повністю змінилися.
Для того щоб зрозуміти, звідки взялися нові дозволи, пройдемо в додаткові параметри безпеки папки (кнопка Advanced). Як видно з малюнка, всі дозволи папки Temp успадковані від диска С.
В цій ситуації немає нічого дивного. За замовчуванням дозволу NTFS зберігаються тільки при копіюванні \ переміщенні в межах одного логічного диска, або томи. Якщо ж об'єкт переміщається на інший диск того ж (або іншого) комп'ютера, то всі дозволи замінюються успадкованими від батьківського об'єкта, яким в нашому випадку і є диск C комп'ютера SRV1.
В нашому випадку скопійована всього лише одна папка з кількома файлами, тому при необхідності відновити загублені дозволу нескладно. А якщо подібне статися при перенесенні серйозного файлового ресурсу з високим рівнем вкладеності і складною структурою дозволів NTFS, заданих вручну?
На жаль, провідник Windows не вміє копіювати дозволу файлової системи, для цього нам доведеться скористатися альтернативними засобами.
Утиліта Icacls
Ця утиліта спеціально призначена для роботи з ACL. У числі іншого вона може зберегти список доступу зазначеного об'єкта в файл, а потім застосувати цей список до зазначеного об'єкту.
Відкриваємо командний консоль і зберігаємо ACL вихідного каталогу Temp з усім його вмістом (підкаталоги і файли) в файл tempACL командою:
Icacls C: \ Temp \ */save tempACL/t
За замовчуванням утиліта зберігає файл в профілі користувача - C: \ Users \ Імя_пользователя.Це звичайний текстовий файл, який при бажанні можна відкрити в Блокноті.
Перенесемо створений файл tempACL на SRV1 і відновимо з нього ACL каталогу Temp командою:
Icacls C: \ temp/restore C: \ tempACL
Потім ще раз подивимося дозволу скопірованой папки Temp і побачимо, що справедливість восторжествувала