On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

Механизмы динамической регуляции доступа к файлам и каталогам на сервере на базе Apache

Arsen Kirillov

Речь в статье пойдет о том, как  не  меняя основной файл конфигурации Apache и не перезапуская ваш веб-сервер,  изменить права доступа определенного пользователя к каталогу или файлу на вашем веб - сервере.

Дело в том что конфигурационный файл Apache httpd.conf обладает возможностью "масштабирования". То есть вы можете размещать отдельные директивы этого файла в других файлах, расположенных  в директориях вашего веб-сайта. При этом нет необходимости перезапускать веб сервер каждый раз когда изменяться эти файлы -так как веб сервер автоматически их ищет и исполняет в каждом каталоге , к которому хочет получить доступ пользователя.

Для того чтобы использовать возможности такого "масштабирования" следует сообщить серверу что мы собираемся использовать такую возможность и задать имена файлов в которых будет находиться  служебная информация.  Кроме того необходимо разместить в каталогах файлы с командами серверу дать или запретить доступ к конкретным файлам или директориям внутри текущей директории.

Для того чтобы включить в корневом каталоге сервера возможность использования файлов доступа следует задать это в директиве <Directory> для корневого каталога веб сервера, следующим образом:

# Корневой каталог для веб-сервера . Внутри этого каталога вы размещаете ваши файлы 
DocumentRoot "f:/intranet/root"

#Задаються правила для корневого каталога сервера. Эти правила распространяются по-умолчанию на все вложенные директории и файлы.
<Directory />
Options FollowSymLinks ExecCGI
#Следующая директива разрешает использование конфигурационных файлов в корневой и всех вложенных директориях веб-сервера если только для вложенных директорий не указаны  отдельные директивы например <Directory F:/intranet/root/tmp> ... </directory>
AllowOverride All
</Directory>

# Указываем права доступа и параметры для доступа к корневому каталогу (см. директиву DocumentRoot )  веб-сервера 
<Directory "f:/intranet/root">
Options Indexes FollowSymLinks MultiViews
# Разрешаем использование конфигурационных файлов.
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Для того чтобы определить в каких именно файлах будут находиться конфигурационная информация следует добавить в конфигурационных файл следующую директиву (если ее еще там нет) которая задает какие файлы использовать в качестве конфигурационных:

# Если файл с таким именем находиться в текущей директории то 
# при наличии для директории действующего правила "AllowOverride All" следует использовать правила указанные 
# в этом файле.
AccessFileName .htaccess

Кроме того в основном конфигурационном фалу Apache  полезно указать что данный файл не доступен для любого браузера, это делается следующим образом:

<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>1

После того как вы сделали следующие изменения в конфигурационном файле httpd.conf следует перезапустить веб-сервер. Для того чтобы запретить доступ любому пользователю к подкаталогу имя которого начинаеться с подстрочного подчеркивания ,  достаточно  создать  файл ".htaccess" со следующим содержимым:

<Files _* >
Order allow,deny
Deny from all
</Files>

и разместить его в корневом каталоге веб сервера. После того как такой файл размещен или изменен - перезапускать веб-сервер не нужно. Информация из файла конфигурации читается веб сервером налету. Если же вы желаете выборочно разрешить доступ определенным пользователям к каталогу то создайте в нем следующий .htaccess файл:

<Files _* >
Order deny,allow
Deny from all
# Пользователи со следующими ip-адресами имеют доступ к файлам (или директориям) имена которых 
# начинаються с подстрочного подчеркивания. Остальные не имеют.
Allow from 127.0.0.1
Allow from 192.168.1.1
Allow from 192.168.1.2
Allow from 192.168.1.3
</Files>

Более подробно про директивы управления веб сервером можно  посчитать в документации по веб-серверу Apache на http://www.apache.org/ - официальном сайте веб - сервера Apache. 

Кроме того рекомендуем посетить раздел "ИНТРАNET" сайта "Программы для бизнеса" там вы найдете статьи посвященные применению интранет технологий в вашем бизнесе. 



Литература по Apache