Crmgo Blog

Používáme soubory .htaccess a .htpasswd

Používáme soubory .htaccess a .htpasswd

pro nastavení hesla pro přístup k určitým stránkám nebo oddílům vašich webových stránek. Nejprve vytvořte v požadovaném podadresáři soubor .htaccess a do něj zapište následující: AuthType Basic AuthName "Přístup zamítnut. Zadejte heslo" AuthUserFile /cesta_k_souboru/.passwords <Limit GET POST> Require valid-user…

Používáme soubory .htaccess a .htpasswd

pro nastavení hesla pro přístup k určitým stránkám nebo oddílům vašich webových stránek.
Nejprve vytvoříme v požadovaném podadresáři soubor .htaccess, do kterého zapíšeme následující:
AuthType Basic
AuthName "Access is Denied. Enter password"
AuthUserFile /path_to_file/.passwords
<Limit GET POST>
Require valid-user
</Limit>
Dále vytvoříme soubor s hesly, jehož cesta je uvedena jako parametr pro direktivu AuthUserFile.
Hesla v tomto souboru musí být zašifrovaná, čehož lze dosáhnout pomocí programu htpasswd, který je součástí distribuce Apache.

Podrobné informace o používání lze najít v Manual Page: htpasswd nebo v manuálových stránkách (man), případně stačí spustit htpasswd v unixovém shellu:
$ 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.
.....

Takže zatím nemáme soubor s hesly a musíme ho vytvořit:
$ htpasswd -c .passwords test
New password:
Re-type new password:
Adding password for user test

Poté se vytvoří soubor .passwords, ve kterém bude uživatel test a jeho heslo ve zašifrované podobě:
$ cat .passwords
test:WE.MwmyNsIG76

Nyní chceme přidat dalšího uživatele. Protože soubor s hesly již existuje, prostě nepoužijeme přepínač ‘-c’:
$ htpasswd .passwords test1
New password:
Re-type new password:
Adding password for user test1
$ cat .passwords
test:WE.MwmyNsIG76
test1:Eeg7zFPfq32BM

Jako parametr pro direktivu require jsme uvedli valid-user. To znamená, že jakýkoli uživatel, který je v používaném souboru s hesly, může mít přístup k chráněnému zdroji. Nicméně, souhlasíte, že je pohodlné mít všechna hesla v jednom souboru a práva na konkrétní zdroje udělovat pouze určitým uživatelům.
Pro to ukážeme na příkladu, že poskytneme přístup pouze uživateli test:

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

Ještě lze uživatele seskupit do skupin a poskytovat přístup ne konkrétním uživatelům, ale skupinám.
To lze provést pomocí direktivy AuthGroupFile:

AuthGroupFile /cesta_k_souboru/groups

V souboru groups vytvoříme skupiny přibližně takto:
group1: user1 user3
group2: user2 user4
group3: user1 user3
Příslušně budeme direktivu require používat takto:

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>

Poznámka: příspěvek mohl vzniknout s pomocí AI a lidskou redakcí. Odpovědný: Dmytro Lomaka, Kaltenkirchen.