Oprettelse af en form for adgangskodegodkendelse for et websted kan være en vigtig del af deling af indhold med autoriserede brugere. I en anden artikel diskuterer vi, hvordan du kan gøre netop dette ved hjælp af et par smarte .htaccess-regler. Hvis du gerne vil læse mere om, hvordan dette gøres, kan du læse vores artikel, som omhandler, hvordan du beskytter filer eller mapper med adgangskode med .htaccess. Du undrer dig dog måske over, hvordan disse legitimationsoplysninger valideres, og hvor gemmes de? Svaret er med .htpasswd-filen, som vil være i fokus i denne artikel.
Hvad er .htpasswd?
En .htpasswd-fil bruges typisk, når man beskytter en fil, en mappe eller et helt websted med en adgangskode ved hjælp af HTTP-godkendelse og implementeres ved hjælp af regler i en .htaccess-fil. Brugeroplysningerne gemmes på separate linjer, hvor hver linje indeholder et brugernavn og en adgangskode adskilt af et kolon (:). Brugernavne gemmes i almindelig tekst, mens adgangskoder gemmes i et krypteret hashed-format. Denne kryptering er normalt MD5, selv om den i Linux kan være baseret på funktionen crypt(). Selv om det er muligt at give adgangskodefilen det navn, du ønsker, frarådes dette på det kraftigste, da Apache er forudkonfigureret til at bruge .htpasswd som standard, og dot-filer (filer, der begynder med “.”) er generelt skjulte filer.
Hvordan opretter man en .htpasswd-fil?
Afhængigt af din platform kan dette opnås på et par forskellige måder. Den nemmeste metode er at gå over til et af de forskellige websteder til oprettelse af .htpasswd-filer og følge deres enkle instruktioner for at generere de nødvendige poster til en .htpasswd-fil. Jeg vil anbefale generatoren, der tilbydes af htaccesstools.com, da den er meget enkel og lige til at gå til sagen, gå ind og tjek den ud: Htpasswd Generator. Hvis du er som mig og gerne vil se, hvordan dette gøres uden at bruge en generator, så bliv hængende!
Først skal du have et brugernavn i tankerne, i dette eksempel har jeg valgt brugernavnet bob123. Dernæst skal du være logget ind på din server via SSH, hvis du ikke er sikker på hvordan du får adgang til din server via SSH, kan du læse følgende artikel: Tilslutning til din server via SSH. Endelig skal du udføre følgende kommando, bemærk venligst, at hvis du udfører dette som en ikke-root-bruger, skal du bruge sudo.
htpasswd -c /home/usernamehere/.htpasswd bob123
Du vil blive bedt om at angive og bekræfte en adgangskode for denne bruger. Hvis du ønsker at tilføje yderligere brugere, kan du gøre det via følgende:
htpasswd /home/usernamehere/.htpasswd newUser2
Hvis du skulle kontrollere indholdet af .htpasswd-filen, skulle du se noget, der ligner følgende.
bob123:$apr1$FaPCZHMe$jYiw5.9UevKx25pBH4AsT/newUser2:$apr1$mrCHcVhc$oNdJeRcWKPk2z8dlzQI0x/