do ustawienia hasła dostępu do określonych stron lub sekcji Twojej strony internetowej.
Na początek tworzymy w odpowiednim podkatalogu plik .htaccess, w którym wpisujemy następujące dane:
AuthType BasicNastępnie tworzymy plik z hasłami, którego ścieżka jest podawana jako parametr dyrektywy AuthUserFile.
AuthName "Access is Denied. Enter password"
AuthUserFile /path_to_file/.passwords
<Limit GET POST>
Require valid-user
</Limit>
Hasła w tym pliku muszą być zaszyfrowane, czego można dokonać za pomocą programu htpasswd, dostarczanego wraz z Apache.
Szczegółowe informacje na temat użytkowania można znaleźć w Manual Page: htpasswd lub w dokumentacji man, uruchamiając htpasswd w powłoce Unix:
$ 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.
.....
Zatem, nie mamy jeszcze pliku z hasłami i musimy go utworzyć:
$ htpasswd -c .passwords test
New password:
Re-type new password:
Adding password for user test
Po tej operacji zostanie utworzony plik .passwords, zawierający użytkownika test oraz jego hasło w zaszyfrowanej postaci:
$ cat .passwords
test:WE.MwmyNsIG76
Teraz chcemy dodać kolejnego użytkownika. Ponieważ plik z hasłami już istnieje, po prostu nie używamy opcji ‘-c’:
$ htpasswd .passwords test1
New password:
Re-type new password:
Adding password for user test1
$ cat .passwords
test:WE.MwmyNsIG76
test1:Eeg7zFPfq32BM
Jako parametr dyrektywy require podaliśmy valid-user. Oznacza to, że każdy użytkownik znajdujący się w używanym pliku z hasłami może uzyskać dostęp do chronionego zasobu. Jednakże, zgodźcie się, że wygodniej jest mieć wszystkie hasła w jednym pliku, a uprawnienia do konkretnych zasobów przyznawać tylko wybranym użytkownikom.
W tym celu, na przykładzie, przyznajemy dostęp tylko użytkownikowi test:
AuthType Basic
AuthName "Access is Denied. Enter password"
AuthUserFile /path_to_file/.passwords
<Limit GET POST>
Require user test
</Limit>
Można również grupować użytkowników i przyznawać dostęp nie konkretnym użytkownikom, ale grupom.
Można to zrobić za pomocą dyrektywy AuthGroupFile:
AuthGroupFile /sciezka_do_pliku/groups
W pliku groups tworzymy grupy w następujący sposób:
group1: user1 user3Odpowiednio, dyrektywę require używamy w następujący sposób:
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>
