Passordbeskytte sider / kataloger med .htaccess

Her kan du lese om hvordan man legger opp en passordfil, og hvordan man beskytter en mappe og en enkelt fil. For å benytte seg av passordbeskyttelse bør man ha shell-tilgang til serveren. Jeg har ikke testet .htaccess på en Windows-versjon av Apache, men funksjonaliteten skal være den samme som for UNIX-baserte systemer. Jeg benytter meg av et Linux shell.

Hvis du har en hjemmeside som kjøres på en Apache-tjener kan man lett passordbeskytte et område. Du må tilkjennegi deg med et brukernavn og passord før du får tilgang til en bestemt fil eller mappe på et webområde via din nettleser.

1. Lage en passordfil

På serveren min er min katalog "/home/martin" og mitt webområdet ligger i "/home/martin/www".

For å lage en passordfil skriver man i shell-et "htpasswd -bc passord-fil brukernavn passord". Switchen -b bruker man for å skrive hele kommandoen i en streng. Switchen -c er for å oprette en ny fil.

  1. [martin@localhost martin]$ htpasswd -bc web.passord martin martinspassord

Nå blir filen "/home/martin/web.passord laget", og brukeren "martin" blir laget med passordet "martinspassord".

Velger du å liste opp innholdet i filen med kommandoen "cat web.passord" vil du få se det krypterte passordet i stedet for passordet du skrev inn.

For å legge til en ny bruker bruker du den samme kommandoen bare uten -c operatoren.

  1. [martin@localhost martin]$ htpasswd -b web.passord dagfinn haslebrekk

Ønsker du å endre passord for en av brukerene bruker du samme kommandoen som når du legger til en ny bruker.

2. Beskytte en webmappe

Mappen jeg har velgt å beskytte er "/home/martin/www/passord/". For å beskytte mappen må du opprette en filen .htaccess.

  1. [martin@localhost martin]$ cd www/passord/
  2. [martin@localhost passord]$ pico .htaccess

I .htaccess legger vi til følgende informasjon:

  1. AuthUserFile /home/martin/web.passord
  2. AuthGroupFile /dev/null
  3. AuthName "Passordbeskyttet området"
  4. AuthType Basic
  5.  
  6. require valid-user

AuthUserFile henviser til hvor passordfilen ligger

AuthGroupFile har vi ikke satt, da vi ikke har kommet til dette enda.

AuthName er selve teksten som kommer opp i login boksen.

require funksjonen er hva som trengs for å komme inn på siden. De forskjellige typene er:
- valid-user, som er bare at brukeren må eksistere.
- user - f.eks require user martin, da kommer kun brukeren martin inn på siden.
- group - f.eks require group admin, da kommer kun brukere som er med i admin gruppen inn. Les mer om bruk av grupper i neste punkt.

3. Grupper

La oss si at det nå finnes 6 brukere i min passord fil - martin, dagfinn, per, ola, petter og nils. Og man vil lage en gruppe med brukerene martin, dagfinn og petter, og en annen gruppe som med de andre brukerene.

Når man definerer en gruppe, gjøres dette bare i fritekst. Gruppefilen kommer jeg til å legge i "/home/martin/web.gruppe" og man redigerer denne som man gjør med vanlige tekstfiler.

  1. [martin@localhost passord]$ cd
  2. [martin@localhost martin]$ pico web.gruppe

I filen legger jeg inn følgende data.

  1. admin: martin dagfinn per
  2. brukere: ola nils peter

Når man så bruker denne .htaccess filen

  1. AuthUserFile /home/martin/web.passord
  2. AuthGroupFile /home/martin/web.gruppe
  3. AuthName "Passordbeskyttet området - Administratorer"
  4. AuthType Basic
  5.  
  6. require group admin

vil kun martin, dagfinn og per ha tilgang til denne katalogen.

4. Beskytting av enkeltfiler

Ved bruk av .htaccess kan man også beskytte enkeltfiler. Det trenger altså ikke nødvendigvis være hele kataloger. Alt man trenger å gjøre her er å legge inn parameteren

  1. <files "admin.php">
  2. AuthUserFile /home/martin/web.passord
  3. AuthGroupFile /home/martin/web.gruppe
  4. AuthName "Passordbeskyttet administratorfil"
  5. AuthType Basic
  6.  
  7. require group admin
  8. </files>

I dette tilfellet er kun filen "admin.php" passordbeskyttet, og kun gruppen admin har tilgang til denne filen. Alle andre filer i denne katalogen er tilgjenngelig for alle. Du kan også velge å bruke wildcards, dvs *. Slik at man kan beskytte *.php, og da blir alle php-filer beskyttet.

Informasjon om opphavsrett og lisensiering 1995 - 2008 Martin Bekkelund
xhtml
css
rss
cc
508
aaa
v6.09