2 марта 2017, 12:59 |
Не нашёл в интернете хорошего решения, поэтому выкладываю тут.
Т.к. во FreeBSD нельзя сделать просто mknod в произвольном месте фс (вернее можно, но результат работать не будет с ошибкой "operation not supported"), то для доступа к устройствам внутри chroot приходится немного шаманить - а именно монтировать devfs с нужными нам устройствами.
Покажу на примере php-fpm. Создаём файл /usr/local/etc/rc.conf.d/php_fpm со следующим содержимым:
и в rc.conf дописываем:
Создаём по нужным путям dev/, делаем рестарт сервиса - и после этого всё должно заработать.
Т.к. во FreeBSD нельзя сделать просто mknod в произвольном месте фс (вернее можно, но результат работать не будет с ошибкой "operation not supported"), то для доступа к устройствам внутри chroot приходится немного шаманить - а именно монтировать devfs с нужными нам устройствами.
Покажу на примере php-fpm. Создаём файл /usr/local/etc/rc.conf.d/php_fpm со следующим содержимым:
mount_devs() {
for i in $php_fpm_chroots; do
umount "${i}/dev" 2>/dev/null || true
devfs_domount "${i}/dev" devfsrules_hide_all
devfs -m "${i}/dev" rule apply path null unhide
devfs -m "${i}/dev" rule apply path random unhide
devfs -m "${i}/dev" rule apply path urandom unhide
done
}
start_precmd="$start_precmd && mount_devs"
и в rc.conf дописываем:
php_fpm_chroots="/var/www1 /var/www2"
Создаём по нужным путям dev/, делаем рестарт сервиса - и после этого всё должно заработать.
Комментарии RSS