Управление доступом
Сервер NCSA содержит гибкие средства управления доступом. С их
помощью можно централизованно или децентрализованно управлять
доступом, основываясь на структуре адреса WWW - клиента, создавать
пары имя/пароль для документов или целых подразделов, создавать
несколько пар имя/пароль.
Управление доступом с использованием пар имя/пароль
Для введения ограничений на доступ ко всем документам определенного
каталога необходимо создать в этом каталоге файл управления доступом.
Этот файл имеет фиксированное имя, определяемое параметром AccessFileName
файла конфигурации доступа. По умолчанию,
это файл .htaccess.
Пример содержимого файла .htaccess
AuthUserFile /otherdir/.htpasswd
AuthGroupFile /dev/null
AuthName ByPassword
AuthType Basic
<Limit GET>
require user pumpkin
</Limit>
AuthUserFile указывает путь файла паролей, который
должен находиться вне данного каталога.
Limit GET ограничивает доступ по методу GET, предоставляя
его только пользователю pumpkin. Для ограничения других методов
доступа (например, в каталогах
CGI) используется перечисление всех методов:
<Limit GET POST PUT>
require user pumpkin
</Limit>
Для создания файла паролей необходимо воспользоваться утилитой
htpasswd, входящей в состав дистрибутива сервера:
htpasswd -c /otherdir/.htpasswd
pumpkin
После запуска она дважды запросит пароль для пользователя pumpkin
и создаст файл паролей /otherdir/.htpasswd.
Использование нескольких пар имя/пароль
Использование нескольких пар имя/пароль достигается путем описания
группы, в которую входят несколько
пользователей, и указания
имени группы в операторе Limit.
можно достичь, не указывая
ключа -c (create) для htpasswd:
htpasswd /otherdir/.htpasswd
peanuts
htpasswd /otherdir/.htpasswd
almonds
htpasswd /otherdir/.htpasswd
walnuts
например, /otherdir/.htgroup
со следующим содержимым:
my-users: pumpkin peanuts almonds
walnuts
где my-users - имя группы,
pumpkin, peanuts, almonds,
walnuts - список пользователей, входящих в группу.
AuthUserFile /otherdir/.htpasswd
AuthGroupFile /otherdir/.htgroup
AuthName ByPassword
AuthType Basic
<Limit GET>
require group my-users
</Limit>
Все документы данного каталога будут доступны всем членам группы
my-users после проведения процедуры аутентификации
(ввода пароля).
Ограничение доступа по сетевому имени
В этом случае управление доступом осуществляется на основе сравнения
сетевого имени машины - клиента с заранее заданным образцом. Если
выявится совпадение, начинают действовать специальные правила
доступа.
Пример ограничения доступа на чтение. Чтение разрешено всем пользователям
машин домена cnit.nsu.ru:
Содержимое файла .htaccess:
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName ExampleAllowFromCNIT
AuthType Basic
<Limit GET>
order deny, allow
deny from all
allow from .cnit.nsu.ru
</Limit>
Оператор order указывает порядок определения требований к доступу:
сначала ограничения, затем разрешения.
deny from all - сначала запрещает доступ для всех,
allow from .cnit.nsu.ru - затем разрешает доступ для машин
домена cnit.nsu.ru.
Оператор AuthName задает имя данного ограничения доступа - произвольную
комбинацию букв и цифр.
Пример запрета на доступ для всех машин домена nstu.nsk.su:
Содержимое файла .htaccess:
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName ExampleAllowFromCNIT
AuthType Basic
<Limit GET>
order allow, deny
deny from .nstu.nsk.su
allow from all
</Limit>