Использование rsync для файлов с контекстом безопасности

Редактировал(а) Олеся 2021/09/29 11:46

Утилита rsync - быстрый и гибкий инструмент копирования информации.

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

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

Все действия выполняются от имени учетной записи администратора с использованием механизма sudo.

Синтаксис команды выглядит следующим образом:

rsync [ключи и опции] [источник] [назначение]

В таблице приведены некоторые наиболее часто используемые опции команды rsync.

ОпцияНазначение
Рекурсивное копирование, сохранение символических ссылок, устройств, владельцев, разрешений и т.д.
-v, --verboseПодробный режим с информацией о прогрессе
-z, --compressСжимать трафик
-r, --recursiveВыполнять копирование рекурсивно
-p, --permsСохранять дискретные права доступа
-t, --timesСохранять время доступа к файлам
-g, --groupСохранять группу
-o, --ownerСохранять владельца
-A, --aclsСохранять списки контроля доступа ACL (включает -p)
-X, --xattrsСохранять расширенные атрибуты (в том числе мандатные атрибуты)

Источник (как и назначение) может быть как локальной машиной, так и удаленной.

Стандартным методом передачи данных является ssh.

rsync поддерживает работу с расширенными атрибутами файлов, включая контекст безопасности. За это отвечает опция –X. Также rsync необходимо запускать с контекстом безопасности с помощью команды runcon с указанием  тегов CHCTX, OMIT и SETXATTR_OMITMAC, которые позволят ему работать с файлами вне зависимости от их контекста безопасности.

ВНИМАНИЕ! Не рекомендуется использовать опцию -L для копирования символических ссылок при создании резервной копии домашних каталогов пользователей.

Рассмотрим работу rsync с контекстом безопасности на примере создания резервной копии домашних каталогов пользователей.

Следующая команда позволит сделать копию директории /home:

sudo runcon t=CHCTX,OMIT,SETXATTER_OMITMAC rsync -avzAX /home /tmp/home_bak

для упрощения команды можно использовать числовые обозначения тегов:

sudo runcon t=3,25,24 rsync -avzAX /home /tmp/home_bak

Для восстановления домашних каталогов пользователей из архива используется следующая команда:

sudo runcon t=CHCTX,OMIT,SETXATTR_OMITMAC rsync -avzAX /tmp/home_bak/ /

или с числовым обозначением тегов:

sudo runcon t=3,25,24 rsync -avzAX /tmp/home_bak/ /

Посмотреть видеоурок: Использование rsync для файлов с контекстом безопасности

strelets.net
telegram: @os_strelets