для встановлення пароля на доступ до певних сторінок або розділів вашого сайту.
Для початку створюємо в потрібному підкаталозі файл .htaccess, в який пишемо наступне:
AuthType BasicДалі створюємо файл з паролями, шлях до якого вказується як параметр до директиви AuthUserFile.
AuthName "Access is Denied. Enter password"
AuthUserFile /path_to_file/.passwords
<Limit GET POST>
Require valid-user
</Limit>
Паролі в цьому файлі повинні бути зашифрованими, чого можна досягти за допомогою програми htpasswd, що входить до постачання Apache.
Детальну інформацію про використання можна почитати Manual Page: htpasswd або покурити man, так само достатньо запустивши htpasswd в unix shell:
$ htpasswd
Usage:
htpasswd [-cmdpsD] passwordfile username
htpasswd -b[cmdpsD] passwordfile username passwordhtpasswd -n[mdps] username
htpasswd -nb[mdps] username password
-c Create a new file.
-n Don't update file; display results on stdout.
-m Force MD5 encryption of the password.
-d Force CRYPT encryption of the password (default).
-p Do not encrypt the password (plaintext).
-s Force SHA encryption of the password.
-b Use the password from the command line rather than prompting for it.
.....
Отже, у нас ще немає файлу з паролями і нам потрібно його створити :
$ htpasswd -c .passwords test
New password:
Re-type new password:
Adding password for user test
Після цього створиться файл .passwords, в якому виявиться користувач test та його пароль у зашифрованому вигляді:
$ cat .passwords
test:WE.MwmyNsIG76
А тепер ми хочемо додати ще одного користувача. Оскільки файл з паролями у нас вже є, ми просто не будемо використовувати ключ ‘-c’ :
$ htpasswd .passwords test1
New password:
Re-type new password:
Adding password for user test1
$ cat .passwords
test:WE.MwmyNsIG76
test1:Eeg7zFPfq32BM
Як параметр до директиви require ми вказали valid-user. Це означає, що будь-який користувач, який є у використовуваному файлі з паролями, може мати доступ до захищеного ресурсу. Однак, погодьтеся, зручно мати всі паролі в одному файлі, а права на конкретні ресурси давати тільки певним користувачам.
Для цього покажемо на прикладі, даємо доступ тільки користувачу test:
AuthType Basic
AuthName "Access is Denied. Enter password"
AuthUserFile /path_to_file/.passwords
<Limit GET POST>
Require user test
</Limit>
Ще можна об'єднати користувачів у групи і давати доступ не конкретним юзерам, а групам.
Це можна зробити за допомогою директиви AuthGroupFile:
AuthGroupFile /path_to_file/groups
У файлі groups створюємо групи приблизно так :
group1: user1 user3Відповідно, директиву require будемо використовувати так :
group2: user2 user4
group3: user1 user3
AuthType Basic
AuthName "Access is Denied. Enter password"
AuthGroupFile /path_to_file/groups
AuthUserFile /path_to_file/.passwords
<Limit GET POST>
Require user test
Require group group1
</Limit>
