Apache ne permite sa protejam directoarele restrictionand accesul utilizatorilor obisnuiti si permitand doar accesul persoanelor autorizate care detin un nume de utilizator si o parola cunoscute. Pentru restrictionarea accesului pe baza de parola trebuie adaugate cateva linii in fisierul httpd.conf, daca avem acces, sau in fisierul.htaccess din directorul in cauza, dar pentru ca liniile respective sa functioneze trebuie sa ne asiguram ca peVirtualHost sau cel putin pe directorul in cauza sunt permisiuni AuthConfig – adica sa existe in httpd.conf o inregistrare de forma:
<directory "/home/utilizator/public_html/director"> Options Indexes FollowSymLinks AllowOverride AuthConfig Order deny,allow </directory>
Daca serverul este setat sa permita parolarea directoarelor vom adauga in fisierul .htaccess din directorul de protejat urmatoarele linii:
AuthName "Zona protejata" AuthType Basic AuthUserFile /home/utilizator/.htpasswd Require valid-user
Codul de mai sus creaza o zona protejata in directorul care contine fisierul .htaccess, zona la care vor avea acces doar persoanele care au o inregistrare in fisierul specificat de directiva AuthUserFile.
Acum ca e protejat directorul va trebui sa adaugam o lista de utilizatori carora sa le permitem accesul. Utilizatorii se adauga folosind comanda htpasswd.
<root@server ~># htpasswd -c /home/utilizator/.htpasswd test New password: Re-type new password: Adding password for user test
Parametrul -c ii spune comenzii htpasswd sa creeze fisierul primit ca parametru in cazul in care acesta nu exista. Se va folosi doar pentru primul utilizator, cand fisierul nu exista. Pentru urmatorii utilizatori care trebuie adaugati se foloseste comanda specificand doar numele fisierului si numele de utilizator de adaugat:
<root@server ~># htpasswd /home/utilizator/.htpasswd test2 New password: Re-type new password: Adding password for user test2
Acum, daca cineva incearca sa acceseze directorul protejat, i se va cere un nume de utilizator si o parola care trebuie sa existe in fisierul .htpasswd.
Daca dupa o perioada dorim sa stergem un utilizator folosim comanda htpasswd adaugand parametrul -D
<root@server ~># htpasswd -D /home/utilizator/.htpasswd test