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