SELinux: restorecon не меняет контекст на httpd_sys_content_t

859
turrican_34

Мне нужно использовать Puppeteer в системе Centos 7.4.1708, но когда SELinux настроен на Enforcing, я получаю ошибки AVC.

Если я бегу, sudo cat /var/log/messagesя получаю:

SELinux is preventing /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome from search access on the directory /sys/fs/cgroup/cpuset.  ***** Plugin restorecon_source (99.5 confidence) suggests *****************  If you want to fix the label. /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome default label should be httpd_sys_content_t.  Then you can run restorecon.  Do  # /sbin/restorecon -v /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome 

Это же сообщение появляется возможно 6 или 7 раз.

Когда я пытаюсь сделать выше, однако, restorecon не устанавливает контекст файла.

Установить политику (как root):
semanage fcontext -a -t httpd_sys_content_t '/var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome'

Проверить политику:
matchpathcon /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome
показывает:
/var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome system_u:object_r:httpd_sys_content_t:s0

Это выглядит хорошо, но потом ...
Установите новый контекст для файла:
/sbin/restorecon -v /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome

restoreconне работает Я не получаю никаких ошибок, даже если я использую -vv. Я также пытался заставить restoreconс, -Fно это не работает.

Вот текущий контекст файлов:
ls -Z /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome Показывает:
-rwxrwxrwx. root root system_u:object_r:nfs_t:s0 /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome

Текущий контекст nfs_tсвязан с тем, что я использую синхронизированные папки с nfsзапущенным виртуальным ящиком Vagrant. Я не могу перейти на smb, потому что он не синхронизируется в обоих направлениях с помощью хоста Windows.

Любые идеи о том, как я могу решить эту проблему? Я был там почти два дня.

Примечание: если я установлю SELinux на Permissive, то Puppeteer / Chromium будет работать без проблем.

Спасибо :)

Изменить: я также должен упомянуть, что я httpd_use_nfsустановил on.

Вот пастбин всех моих логических выражений SELinux.

SELinux логическое

Изменить 2:

Используя совет @HBruijn, я пытаюсь монтировать с определенным контекстом, но получаю ошибку.

Корневая команда AS:
mount 10.0.0.1:/C/Users/Lee/Desktop/www /var/www -o context="system_u:object_r:httpd_sys_content_t:s0"

Ошибка:
mount.nfs: requested NFS version or transport protocol is not supported

Сервер 10.0.0.1мой личный сервер настройки в vagrantfile.
config.vm.network "private_network", ip: "10.0.0.0"

Путь экспорта тот же путь, Бродячий использует при монтирует папку на vagrant upнапример 10.0.0.1:/C/path/to/directory.

Есть идеи??

0

1 ответ на вопрос

0
HBruijn

Я думаю, что вы пытаетесь решить проблему не с того конца, рассматривали ли вы возможность предоставить вашему веб-серверу доступ к общим ресурсам NFS с помощью:

setsebool -P httpd_use_nfs=1 

РЕДАКТИРОВАТЬ На основе вашего комментария, что вы используете VirtualBox на Windows:

Я думаю, что ваш хост Windows не поддерживает маркировку, и тогда клиент (ваш CentOS) назначает политику безопасности по умолчанию как nfs_t.

Вам может потребоваться установить предпочтительный контекст безопасности в качестве опции монтирования, чтобы переопределить это значение по умолчанию (в команде монтирования или / etc / fstab):

# mount server:/export /var/www/html -o context="system_u:object_r:httpd_sys_content_t:s0" 

Смотрите руководство по RHEL 6

Извините, я забыл упомянуть, что у меня уже есть `httpd_use_nfs -> on`. Я отредактирую ОП. 5 лет назад 0
Я добавил pastebin всех моих других логических выражений SELinux. 5 лет назад 0
Правильно ли я понимаю, что вы используете VirtualBox в Windows с гостевой ОС CentOS? HBruijn 5 лет назад 0
Да, это правильно. Использование плагина winnfsd для работы nfs в Windows. 5 лет назад 0
Когда я запускаю это как root, я получаю эту ошибку: `mount.nfs: не удалось разрешить серверный сервер: имя или служба не известны mount.nfs: операция уже выполняется` turrican_34 5 лет назад 0
Вам нужно изменить имя и путь к серверу с `server: / export / var / www / html` на то, что имеет отношение к вашей текущей настройке. HBruijn 5 лет назад 0
Куда мне экспортировать, если мои файлы `/ var / www / html` находятся на хост-системе ?? Нужно ли синхронизировать папку операционной системы с гостевой папкой, например `/ fromhost / www / html`, затем использовать этот путь в качестве пути экспорта. `mount server: / fromhost / www / html / var / www / html -o context =" system_u: object_r: httpd_sys_content_t: s0 "` turrican_34 5 лет назад 0
Использование mount не работает по некоторым причинам. Пожалуйста, смотрите Редактировать 2 в ОП. Получение ошибки `mount.nfs: запрошенная версия NFS или транспортный протокол не поддерживается` turrican_34 5 лет назад 0

Похожие вопросы