Использование .htpasswd
Как ограничить доступ к каталогам сайта
Самый простой способ это сделать -
использовать встроенную авторизацию веб-сервера
Apache. Для этого используется файл .htaccess c
соответствующими
директивами для Apache. В самом простом
случае директивы должны быть такими:
AuthUserFile /полный_путь_к_файлу/.htpasswd
AuthGroupFile /dev/null
AuthName подсказка
AuthType Basic
require valid-user
Директива AuthUserFile задает путь к файлу,
содержащему имена и пароли пользователей.
Он может иметь практически любое имя и
располагаться в любом каталоге,
главное - чтобы веб-сервер мог его
прочитать, что требует установки
соответствующих прав доступа к этому
файлу (на нашем сервере - 644). Однако
традиционно
такие файлы называют .htpasswd
При таком наборе директив доступ к
каталогу получат все пользователи,
перечисленные в .htpasswd. Чтобы дать доступ
только некоторым из них, вместо require
valid-user нужно в .htaccess записать директиву
require user список_имен_пользователей
где список_имен_пользователей имеет вид:
имя_пользователя1 имя_пользователя2 имя_пользователя3...
Как создать файл .htpasswd
Хотя .htpasswd - это обычный текстовой файл,
для работы с ним есть специальная утилита
- ее вариант для Unix называется htpasswd
Команда htpasswd -c .htpasswd имя_пользователя
создаст новый файл .htpasswd, запросит пароль
для пользователя и создаст запись о
пользователе с указанными именем и
паролем в этом файле.
Как добавить или изменить запись о
пользователе в .htpasswd
Команда htpasswd имя_файла имя_пользователя
запросит пароль для пользователя и
создаст запись о пользователе с
указанными именем и паролем в указаном
файле или изменит пароль пользователя в
уже
существующей записи.
Как удалить запись о пользователе из
.htpasswd
Для этого достаточно открыть .htpasswd
обычным текстовым редактором, найти и
удалить строчку, начинающуюся с имя_пользователя:
Подскажите, пожалуйста, как я могу
создать работающий файл .htpasswd ?
Вроде бы ясно, что пароли,
соответствующие логинам, хранятся в этих
файлах в закриптованной форме.
Пробовал разные утилитки для Win, которые
криптуют пароли по казалось бы
подходящей схеме. Но на практике пароли
не распознаются.
Чем в Windows создавать файлы .htpasswd, чтобы
они работали?
Создавать эти файлы лучше через скрипт.
1. Создать файл паролей, выполнив из
скрипта команду
/usr/local/apache/bin/htpasswd -c -b passwordfile username password
где passwordfile это, например, /home/mydomainru/.htpasswd
usernanme и password соответственно имя
пользователя и пароль
2. В директории, которую Вы паролируете,
создать файл .htaccess
AuthType Basic
AuthName "Security system"
AuthUserFile /home/mydomainru/.htpasswd
<Limit GET POST>
require valid-user
</Limit>
<< предыдущая
||
следующая >>
|