Crmgo Blog

Korišćenje fajlova .htaccess i .htpasswd

Korišćenje fajlova .htaccess i .htpasswd

za postavljanje lozinke za pristup određenim stranicama ili delovima vašeg sajta. Prvo, u željenom poddirektorijumu kreirajte fajl .htaccess i u njega upišite sledeće: AuthType Basic AuthName "Pristup je odbijen. Unesite lozinku" AuthUserFile /putanja_do_fajla/.passwords <Limit GET POST> Require valid-user…

Korišćenje fajlova .htaccess i .htpasswd

za postavljanje lozinke za pristup određenim stranicama ili delovima vašeg sajta.
Na početku kreiramo fajl .htaccess u željenom poddirektorijumu, u koji upisujemo sledeće:
AuthType Basic
AuthName "Access is Denied. Enter password"
AuthUserFile /path_to_file/.passwords
<Limit GET POST>
Require valid-user
</Limit>
Zatim kreiramo fajl sa lozinkama, čiji se put navodi kao parametar direktive AuthUserFile.
Lozinke u ovom fajlu moraju biti šifrovane, što se može postići pomoću programa htpasswd, koji je deo distribucije Apache servera.

Detaljnije informacije o korišćenju možete pročitati u Manual Page: htpasswd ili u man stranici, takođe dovoljno je pokrenuti htpasswd u Unix shell-u:
$ 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.
.....

Dakle, još nemamo fajl sa lozinkama i potrebno ga je kreirati:
$ htpasswd -c .passwords test
New password:
Re-type new password:
Adding password for user test

Nakon toga biće kreiran fajl .passwords, u kojem će se naći korisnik test i njegova lozinka u šifrovanom obliku:
$ cat .passwords
test:WE.MwmyNsIG76

Sada želimo da dodamo još jednog korisnika. Pošto fajl sa lozinkama već postoji, jednostavno nećemo koristiti opciju ‘-c’:
$ htpasswd .passwords test1
New password:
Re-type new password:
Adding password for user test1
$ cat .passwords
test:WE.MwmyNsIG76
test1:Eeg7zFPfq32BM

Kao parametar za direktivu require naveli smo valid-user. To znači da svaki korisnik koji se nalazi u korišćenom fajlu sa lozinkama može imati pristup zaštićenom resursu. Međutim, slažete se da je praktično imati sve lozinke u jednom fajlu, a prava na konkretne resurse dodeljivati samo određenim korisnicima.
Za to ćemo, na primeru, pokazati kako dati pristup samo korisniku test:

AuthType Basic
AuthName "Access is Denied. Enter password"
AuthUserFile /path_to_file/.passwords
<Limit GET POST>
Require user test
</Limit>

Takođe, korisnike možemo grupisati i davati pristup ne konkretnim korisnicima, već grupama.
To se može uraditi pomoću direktive AuthGroupFile:

AuthGroupFile /putanja_do_fajla/groups

U fajlu groups kreiramo grupe otprilike ovako:
group1: user1 user3
group2: user2 user4
group3: user1 user3
Sukladno tome, direktivu require ćemo koristiti na sledeći način:

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>

Napomena: tekst može biti uz pomoć AI uz ljudsku proveru. Odgovoran: Dmytro Lomaka, Kaltenkirchen.