Product SiteDocumentation Site

5.10.2. Перемещение (Moving) файлов и каталогов

Файлы и каталоги сохраняют свой текущий контекст SELinux при перемещении. В большинстве случаев, это некорректно к расположению куда они перемещаются. В следующем примере демонстрируется перемещение файла и домашнего каталога пользователя в каталог /var/www/html/, который использует Apache HTTP Server. Так как файл перемещается он не наследует корректный контекст SELinux:
  1. Выполните команду cd без аргументов для перехода в домашний каталог. После того, как вы перешли в домашний каталог, выполните команду touch file1 для создания файла. Этот файл помечен типом user_home_t:
    $ ls -Z file1
    -rw-rw-r--  user1 group1 unconfined_u:object_r:user_home_t:s0 file1
    
  2. Выполните команду ls -dZ /var/www/html/ для просмотра контекста SELinux каталога /var/www/html/:
    $ ls -dZ /var/www/html/
    drwxr-xr-x  root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
    
    По умолчанию каталог /var/www/html/ помечен типом httpd_sys_content_t. Файлы и каталоги созданные в каталоге /var/www/html/ наследуют этот тип, и как следствие, перемаркируются этим типом.
  3. От имени пользователя root, выполните команду mv file1 /var/www/html/ для перемещения file1 в каталог /var/www/html/. Так как файл перемещается, то он сохраняет тип user_home_t:
    # mv file1 /var/www/html/
    # ls -Z /var/www/html/file1
    -rw-rw-r--  user1 group1 unconfined_u:object_r:user_home_t:s0 /var/www/html/file1
    
По умолчанию Apache HTTP Server не может читать файлы помеченные типом user_home_t. Если все файлы относящиеся к веб странице помечены типом user_home_t или другим типом, который Apache HTTP Server не имеет права читать, разрешение запрещает доступ к ним через Firefox или другие браузеры.

Важно

Перемещение файлов и каталогов с помощью команды mv может привести к некорректному контексту SELinux, ограничивая доступ процессам, таким как Apache HTTP Server и Samba, к файлам и каталогам