Данная статья применима к:
- Astra Linux
Введение
В настоящей статье рассматривается технология vfs_shadow_copy2 - технология предоставления клиентам Windows истории изменения их данных. Технология позволяет клиентам Microsoft Windows просматривать историю изменения их файлов. В литературе используются термины моментальный снимок (snapshot) и теневая копия (shadow copy), однако в самом деле технология предоставляет возможность сетевого доступа к последовательности копий файлов, сделанных предыдущие моменты времени. Для создания таких последовательностей применяется монтирование моментальных снимков (например, моментальных снимков LVM), или может применяться простое копирование файлов. Далее применяются общепринятые термины:
- моментальный снимок — набор данных по состоянию на какой-то момент времени;
- теневая копия — копия файла в моментальном снимке.
В статье приведен пример базовой настройки теневого копирования для домашних каталогов пользователей (homes) и простого разделяемого ресурса (share). Вопросы создания и администрирования моментальных копий и администрирования разделяемых ресурсов в статье не рассматриваются.
Перед прочтением статьи рекомендуется ознакомиться с общей информацией по работ с Samba: см. обзорную статью Samba и связанные статьи.
Установка пакетов
Для обеспечения возможности доступа к теневым копиям достаточно установить и настроить один пакет samba. Установка пакета:
Настройка Samba
Для предоставления доступа к теневым копиям необходимо создать разделяемый ресурс. Минимальные настройки разделяемого ресурса:
[<имя_разделяемого_ресурса>] vfs objects = shadow_copy2 shadow:mountpoint = <разделяемый_каталог> shadow:snapsharepath = <каталог_в_снимке> path = <разделяемый_каталог> guest ok = y
Где:
- vfs objects = shadow_copy2 — включение для разделяемого ресурса поддержки теневых копий;
- shadow:mountpoint = <разделяемый_каталог> — для монтируемых ресурсов точка монтирования определяется автоматически. Для каталогов без монтирования указать сам каталог.
- shadow:snapsharepath = <каталог_в_снимке> — смещение к копиям ресурса в снимке.
- path = <разделяемый_каталог> — сам разделяемый каталог.
- guest ok = y — разрешение анонимного доступа к ресурсу. Используется для упрощения примера.
Пример разделяемого ресурса share, предоставляющего доступ к каталогу /srv/share:
[share] vfs objects = shadow_copy2 shadow:mountpoint = /srv/share shadow:snapsharepath = srv/share path = /srv/share guest ok = yes
При этом снимок не обязательно должен иметь корневым каталогом разделяемый каталог: в приведенном примере подразумевается использование снимка всего диска (корневой каталог снимка - каталог /), а разделяемый ресурс в этом снимке расположен в под каталоге srv/share (путь не абсолютный).
Более сложный пример специального разделяемого ресурса homes:
[homes] vfs objects = shadow_copy2 comment = Home Directories browseable = no read only = yes create mask = 0700 directory mask = 0700 valid users = %SИ
Для ресурса homes:
- параметр shadow:mountpoint автоматически определяется как /home;
- корневым каталогом моментальных снимков автоматически принимается каталог /home.
Изменение этих параметров не поддерживается.
Пример создания структуры моментальных снимков и теневых копий для указанных разделяемых ресурсов homes и share приведен далее.
Размещение моментальных снимков
Моментальные снимки представляют собой обычные каталоги со специальными именами. По умолчанию поиск моментальных снимков выполняется в подкаталоге .snapshots каталога shadow:mountpoint (размещение моментальных снимков может быть изменено с помощью параметра shadow:snapdir). Каталоги моментальных снимков по умолчанию имеют имена, отражающие время создания снимка. Формат имен:
@GMT-YYYY.MM.DD-hh.mm.ss
где:
- YYYY — 4 цифры года;
- MM — 2 цифры месяца;
- DD — 2 цифры дня месяца;
- hh –- 2 цифры часа;
- mm — 2 цифры минуты;
- ss — 2 цифры секунды.
Формат имен каталогов моментальных снимков может быть изменен параметром shadow:format.
Создание моментальных снимков
Для создания моментальных снимков могут применяться:
- монтирование поддерживаемых файловыми системами моментальных снимков (например, моментальных снимков LVM);
- монтирование архивов;
- простое копирование файлов в каталоги моментальных снимков;
Для тестового примера структуру моментальных снимков с теневыми копиями файлов можно создать сценарием. Сценарий создает структуру данных для приведенных выше разделяемых ресурсов. Сценарий выполняет следующие действия:
- создает файл homemark.txt в домашнем каталоге текущего пользователя;
- создает разделяемый каталог /srv/share;
- создает файл sharedmark.txt в разделяемом каталоге /srv/share;
создает структуру моментальных снимков и теневых копий для созданных файлов:
для ресурса shares:
для ресурса homes:
Текст сценария:
Проверка работы
Для проверки работы:
В Astra Linux:
Зарегистрировать пользователя в базе данных пользователей samba:
sudo smbpasswd -a $USERДалее работа с разделяемыми ресурсами в Windows будет выполняться от имени этого пользователя.
- В Windows:
- Разрешить сетевое обнаружение, если оно не было разрешено ранее.
- Открыть File Explorer.
В адресной строке File Explorer ввести:
\\<IP-адрес_сервера_samba>\shares
После этого должен быть отображен разделяемый ресурс с единственным файлом sharemark.txt:
Правой кнопкой мыши нажать на файл. Должно появиться контекстное меню:
- Выбрать в контекстном меню пункт "Restore previous versions".
- Должен открыться список обнаруженных версий файла:
- Аналогичные действия выполнить набрав в адресной строке:
\\<IP-адрес_сервера_samba>\shares
После ввода пароля должен быть предоставлен доступ к домашнему каталогу пользователя, и к версиям созданного в этом каталоге файла homemark.txt.