Vagrant: установите контекст синхронизируемой папки, чтобы SELinux не жаловался - PullRequest
0 голосов
/ 11 мая 2018

Vagrant 2.1.1
ОС хоста: Windows 7 Pro
Гостевая ОС: Centos 7.4

Используя либо синхронизированную папку Vagrant по умолчанию, либо синхронизированную папку nfs vagrant Я получаю сообщения об ошибках SELinux, сообщая мне, чтонужно изменить контекст на httpd_sys_content_t.Для всех файлов в синхронизированных папках по умолчанию задан default_t контекст, а для всех файлов, использующих синхронизацию nfs, установлено значение nft_t.

. Файлы всегда имеют контекст по умолчанию_t
config.vm.synced_folder '.', '/vagrant'
Файлы всегдаnfs_t context
config.vm.synced_folder ".", "/vagrant", type: "nfs"

Я пытался изменить контекст файлов обычным способом, используя fcontext и restorecon, но restorecon просто молча терпит неудачу.

Как можноЯ установил контекст синхронизированных файлов / папок, чтобы избежать ошибок SELinux ??

Я пытался использовать :mount_options, но они игнорируются.
Пример:
config.vm.synced_folder "./www", "/var/www", type: "nfs", create: true, id: "sites", mount_options: ['vers=3', :udp, :nolock, :noatime, 'context=system_u:object_r:httpd_sys_content_t:s0']

Может быть, я неправильно добавляю контекст в опциях монтирования ??

1 Ответ

0 голосов
/ 01 ноября 2018

Вы должны использовать rsync для vagrant синхронизированных папок, потому что настройка SELContext через sync_folders не поддерживается, так как это ограничение vboxfs. Сделайте что-нибудь подобное в своем vagrantfile:

config.vm.synced_folder "guest/sync/location", "/host/sync/location", :owner => "root", :group => "root", type: "rsync", rsync__exclude: [".git", ".DS_Store"], rsync__args:["-avz", "--rsync-path='sudo rsync'"]

Этот обходной путь предполагает, что вы постоянно и рекурсивно устанавливаете httpd_sys_content_t, используя semanage и restorecon, согласно этой записи .

ИЗДАНИЕ: 03.11.2008 К сожалению, вышеприведенное решение на самом деле не синхронизирует файлы, потому что rsync на самом деле не работает с хостом вдов. Вот мои выводы и выводы об обходном пути:

https://github.com/hashicorp/vagrant/issues/9827#issuecomment-435622888

...