Sådan læser og indstiller du filrettigheder på din VPS
Hver fil og mappe på din VPS har en ejer, en gruppe og rettigheder. Er de for brede, kan en hacket hjemmeside eller tjeneste skrive overalt. Er de for stramme, får du fejl som "Permission denied" eller en 403 på din hjemmeside. Her kan du læse, hvordan du aflæser rettigheder og sætter dem korrekt. Har du et hostingpakke med DirectAdmin, så se Forbidden (403): Du har ikke adgang til / på denne server.
Aflæs rettigheder med ls -l
ls -l /var/www/example.com -rw-r--r-- 1 anna www-data 1520 index.html -rw-r----- 1 anna www-data 412 config.php drwxr-xr-x 2 anna www-data 4096 images drwxrwxr-x 2 www-data www-data 4096 uploads
Det første tegn angiver typen: - er en fil, d en mappe, l et symbolsk link. Derefter følger tre grupper med tre tegn: hvad ejeren må, hvad gruppen må, og hvad alle andre må. Til sidst står ejeren (anna) og gruppen (www-data).
| Bogstav | For en fil | For en mappe |
|---|---|---|
r | Læse | Se navnene i mappen |
w | Ændre | Oprette, omdøbe og slette filer |
x | Køre som program | Gå ind i mappen og åbne filer i den |
Vær opmærksom på to ting. Uden x på en mappe kan du ikke komme til filerne i den, selv om de kan læses. Og den, der har w på en mappe, kan slette filer i den, også selv om de tilhører en anden.
Rettigheder som tal
Ofte skriver man rettigheder som tre cifre: r tæller 4, w 2 og x 1, lagt sammen for hver gruppe.
| Tal | Rettigheder | Brug |
|---|---|---|
| 644 | rw-r--r-- | Almindelig fil, for eksempel en webside eller et billede |
| 755 | rwxr-xr-x | Mappe, eller et program som alle må bruge |
| 640 | rw-r----- | Konfiguration med en adgangskode, som webserveren kan læse via gruppen |
| 600 | rw------- | Hemmelig fil, som authorized_keys, en privat nøgle eller en .env-fil |
| 700 | rwx------ | Privat mappe, som ~/.ssh |
Ændr rettigheder og ejer
chmod 640 /var/www/example.com/config.php chmod g+w /var/www/example.com/uploads sudo chown anna:www-data /var/www/example.com/config.php
chmod ændrer rettighederne, med et tal eller med bogstaver (u, g, o for ejer, gruppe og andre, med + eller -). chown ejer:gruppe ændrer ejer og gruppe; det må kun root, så brug sudo.
For en hel mappe er chmod -R 644 en kendt fejl: alle undermapper mister så deres x og bliver ubrugelige. Sæt mapper og filer hver for sig med find:
sudo find /var/www/example.com -type d -exec chmod 755 {} +
sudo find /var/www/example.com -type f -exec chmod 644 {} +
Webserveren via gruppen
På Debian og Ubuntu kører nginx og PHP-FPM som standard under brugeren www-data. En god opdeling: du ejer filerne, og gruppen er www-data. Webserveren kan så læse via gruppen og kun skrive i den mappe, hvor det virkelig er nødvendigt, som uploads (chmod g+w eller ejer www-data på netop den mappe). Giv ikke webserveren skriveadgang til dine PHP-filer.
777. Så må alle på serveren læse, ændre og køre filen eller mappen. Går det en dag galt med én hjemmeside eller tjeneste, kan indtrængeren skrive overalt, hvor der står 777. Det egentlige problem er næsten altid ejeren eller gruppen: løs det i stedet for at åbne alt op.Rettigheder til SSH
SSH-serveren kontrollerer rettighederne på dine nøgler. Kan andre skrive i din .ssh-mappe eller din hjemmemappe, ignorerer den din nøgle, og du bliver igen bedt om en adgangskode uden en tydelig fejlmeddelelse. Sæt det sådan:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
Har du oprettet mappen som root for en anden bruger, så ret også ejeren, som beskrevet i En egen bruger med sudo. På AlmaLinux og Rocky Linux kan SELinux også afvise en fil, der har de rigtige rettigheder; ved en håndlavet .ssh-mappe hjælper restorecon -Rv ~/.ssh.
s i stedet for et x, som ved /usr/bin/passwd? Det er setuid-bittet: programmet kører så med ejerens rettigheder. Nogle få systemprogrammer har brug for det, men sæt det aldrig selv på et script. En uventet setuid-fil kan være tegn på et indbrud, se Hacket? De første skridt.Vil du lære mere? Tag det gratis kursus VPS og Linux-serveradministration, lektion 3.1 Brugere, grupper og filrettigheder.
