Apache a indivializovane adresare

Petr Vileta stoupa na practisoft.cz
Neděle Březen 13 17:25:36 CET 2005


Karel Salavec wrote:
> Zdravim!
>
> Mam takovy problemek:
> Mejme nekolik uzivatelu (treba aaa,bbb,ccc), kterym je treba predavat
> zabezpecenym pusobem citliva data (kazdy ma jina). Klient by mel byt
> libovolny browser.
>
> Zvolil jsem reseni SSL a klientske certifikaty. Generovani certifikatu a
> zbytek hry na CA zvladnuto bez problemu, ale zbyva posledni prekazka:
> Jak namapovat napr. /var/www/data/<user> na https://nas_server/data,
> kde pro kazdeho usera bude jiny adresar.
> Priklad:
> pro usera aaa budu servirovat data z /var/www/data/aaa
> pro usera bbb z /var/www/data/bbb
>
> Predpokladam, ze bych se ridil podle promenne SSL_CLIENT_S_DN_CN.
>
No ja bych to udelal nejak takhle (pro Apache 1.3.x co provozuji):
V konfiguraku Apache udelat
---CUT---
<Directory "/var/www/data">
    AllowOverride Options ExecCGI
    <Files ~ "^\.ht">
        Order allow,deny
        Deny from all
        Satisfy All
    </Files>
</Directory>
<Directory "/var/www/data/Karel">
    AllowOverride Options AuthConfig FileInfo
</Directory>
<Directory "/var/www/data/Franta">
    AllowOverride Options AuthConfig FileInfo
</Directory>
---CUT---

Do adresare /var/www/data umistit soubor .htaccess s timto obsahem
---CUT---
AuthType Basic
AuthName "Zadej prihlasovaci jmeno a heslo"
AuthUserFile /var/www/data/.htpasswd
require valid-user
---CUT---

Pak pomoci
    htpasswd -c /var/www/data/.htpasswd Karel
vytvorit soubor hesel s prvnim uzivatelem Karel
Dale opet pomoci htpasswd pridat druheho uzivatele.
    htpasswd /var/www/data/.htpasswd Franta

Pak zkopirovat
    /var/www/data/.htaccess
a
    /var/www/data/.htpasswd
do adresaru Karel a Franta a upravit obsah .htaccess
pro Franta
---CUT---
AuthType Basic
AuthName "Zadej prihlasovaci jmeno a heslo"
AuthUserFile /var/www/data/Franta/.htpasswd
require valid-user
---CUT---

pro Karel
---CUT---
AuthType Basic
AuthName "Zadej prihlasovaci jmeno a heslo"
AuthUserFile /var/www/data/Karel/.htpasswd
require valid-user
---CUT---

a v souborech /var/www/data/Franta/.htpasswd (a Karel/.htpasswd) nechat jen
heslo pro toho jedineho uzivatele.
Treba by slo na to napsat jednoduchy skript, ktery by to udelal ze
zakladnich souboru pomoci grepu nebo tak nejak.

No a nakonec do /var/www/data umistit soubor index.cgi, ktery bude mit tento
obsah (a bude spustitelny)
---CUT---
#!/usr/bin/perl
$redir='https://nas_server/data/' . $ENV{REMOTE_USER};
print "Location: $user\n\n";
---CUT---

A to je vsechno.
Pro uzivatele to bude vypadat tak, ze napise URL https://nas_server/data a
bude dotazan na Jmeno a Heslo. To vyplni a ono ho to presmeruje do jeho
adresare. Pokud by se pokusil prejit do adresare nekoho jineho, tak se ho to
zepta znovu na jmeno/heslo toho jineho uzivatele a pokud ho nebude znat,
vykopne ho to.

--
Petr

Na mail uvedeny v headeru zpravy nema cenu nic posilat, konci to v PR* :-)
Odpovidejte na petr na practisoft cz



Další informace o konferenci Linux