Будет создано отдельное хранилище для веб данных,
к которому пользователи должны иметь доступ. Это позволит
biba/high
управлять доступом к веб
данным.
Начните с создания каталога для хранения веб данных:
#
mkdir /usr/home/cvs
Теперь инициализируйте его командой
cvs
:
#
cvs -d /usr/home/cvs init
Для начала необходимо включить политику biba
,
добавив mac_biba_enable="YES"
в
/boot/loader.conf
. Предполагается, что
ядро скомпилировано с поддержкой MAC.
Далее установите метку biba/high
для всей
системы по умолчанию.
В файл login.conf
, класс default,
необходимо внести следующие изменения:
:ignoretime@:\ :umask=022:\ :label=biba/high:
Каждого пользователя необходимо поместить в класс по умолчанию; такая команда:
#
for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \
/etc/passwd`; do pw usermod $x -L default; done;
быстро решит эту задачу.
Теперь создадим другой класс, web, копию класса default
с меткой, установленной в biba/low
.
Создайте пользователя для работы с основными веб данными,
хранящимися в репозитории cvs.
Этого пользователя необходимо поместить в новый класс,
web
.
Поскольку метка по умолчанию biba/high
,
на репозитории она будет той же. Веб данные должны иметь
ту же метку, чтобы у пользователей был доступ к ним на
чтение/запись. Веб сервер должен иметь доступ к тем же
данным, к которым есть доступ у пользователей с меткой
biba/high
, для этого необходимо понизить
метку данных.
Все, что потребуется, это следующий sh(1) скрипт, который может быть запущен из cron(8):
PATH=/bin:/usr/bin:/usr/local/bin; export PATH; CVSROOT=/home/repo; export CVSROOT; cd /home/web; cvs -qR checkout -P htdocs; exit;
Во многих случаях в веб файлы cvs
необходимо поместить теги Id.
Этот скрипт теперь может быть помещен в домашний каталог
каталог пользователя web
, необходимо
также добавить следующую запись crontab(1):
# Выполнять checkout web данных под меткой biba/low каждые 12 часов: 0 */12 * * * web /home/web/checkout.sh
Эта запись будет извлекать HTML страницы каждые двенадцать часов.
Метод запуска веб сервера по умолчанию также должен быть
изменен для запуска процесса с меткой biba/low
.
Это может быть сделано путем следующего изменения в скрипте
/usr/local/etc/rc.d/apache.sh
:
command="setpmac biba/low /usr/local/sbin/httpd"
Настройки Apache должны быть изменены
для работы с политикой biba/low
. В этом
случае необходимо указать для хранения лог файлов каталог с
меткой biba/low
, иначе будут возвращены
ошибки access denied.
В этом примере необходимо указать в директиве
docroot
каталог
/home/web/htdocs
; или,
Apache не сможет
найти каталог с документами.
Необходимо также изменить другие параметры конфигурации,
включая PID файл,
Scoreboardfile
,
DocumentRoot
, или любые другие
настройки для каталогов, где необходим доступ на запись.
При использовании biba
будет запрещен
доступ на запись во все каталоги сервера, на которых
нет метки biba/low
.
Этот, и другие документы, могут быть скачаны с https://download.freebsd.org/ftp/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.