Product SiteDocumentation Site

5.10.5. Архивирование файлов с помощью star

star не сохраняет расширенные атрибуты по умолчанию. Так как контексты SELinux хранятся в расширенных атрибутах, контексты могут быть потеряны при архивировании файлов. Используйте star -xattr -H=exustar для создания архивов с сохранением котекстов. Пакет star не установлен по-умолчанию. Для установки star, необходимо выполнить команду yum install star от имени пользователя root.
В следующем примере демонстрируется создание архива Star с сохранением контекста SELinux:
  1. От имени пользователя root, выполните команду touch /var/www/html/file{1,2,3} для создания трёх файлов (file1, file2, и file3). Эти файлы наследуют тип httpd_sys_content_t от каталога /var/www/html/:
    # touch /var/www/html/file{1,2,3}
    # ls -Z /var/www/html/
    -rw-r--r--  root root unconfined_u:object_r:httpd_sys_content_t:s0 file1
    -rw-r--r--  root root unconfined_u:object_r:httpd_sys_content_t:s0 file2
    -rw-r--r--  root root unconfined_u:object_r:httpd_sys_content_t:s0 file3
    
  2. Выполните команду cd /var/www/html/ для перехода в каталог /var/www/html/. Из этого каталога от имени пользователя root, выполните команду star -xattr -H=exustar -c -f=test.star file{1,2,3} для создания архива Star с именем test.star:
    # star -xattr -H=exustar -c -f=test.star file{1,2,3}
    star: 1 blocks + 0 bytes (total of 10240 bytes = 10.00k).
    
  3. От имени пользователя root, выполните команду mkdir /test для создания нового каталога, и затем, выполните команду chmod 777 /test/ для предоставления всем пользователям полного доступа к каталогу /test/.
  4. Выполните команду cp /var/www/html/test.star /test/ для копирования файла test.star в каталог /test/.
  5. Выполните команду cd /test/ для перехода в каталог /test/. В этом каталоге выполните команду star -x -f=test.star для распаковки архива Star:
    $ star -x -f=test.star 
    star: 1 blocks + 0 bytes (total of 10240 bytes = 10.00k).
    
  6. Выполните команду ls -lZ /test/ для просмотра контекста SELinux. Тип The httpd_sys_content_t сохранился, вместо default_t, что произошло бы, если опция --selinux не использовалась:
    $ ls -lZ /test/
    -rw-r--r--  user1 group1 unconfined_u:object_r:httpd_sys_content_t:s0 file1
    -rw-r--r--  user1 group1 unconfined_u:object_r:httpd_sys_content_t:s0 file2
    -rw-r--r--  user1 group1 unconfined_u:object_r:httpd_sys_content_t:s0 file3
    -rw-r--r--  user1 group1 unconfined_u:object_r:default_t:s0 test.star
    
  7. Если каталог /test/ больше не нужен, от имени пользователя root, выполните команду rm -ri /test/ для его удаления, а также всех файлов в нём.
  8. Если star больше не нужен от имение пользователя root, выполните команду yum remove star для удаления пакета.
Refer to the star(1) manual page for further information about star.