Les og sett riktige filrettigheter på VPS-en din
Hver fil og hver mappe på VPS-en din har en eier, en gruppe og rettigheter. Er de for åpne, kan et hacket nettsted eller en hacket tjeneste skrive overalt. Er de for strenge, får du feil som "Permission denied" eller en 403 på nettstedet ditt. Her ser du hvordan du leser rettigheter og setter dem riktig. Har du et hostingpakke med DirectAdmin, se Ingen tilgang (403): Du har ikke tilgang til / på denne serveren.
Les rettigheter 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 tegnet viser typen: - er en fil, d en mappe, l en symbolsk lenke. Deretter følger tre grupper på tre tegn: hva eieren kan, hva gruppen kan og hva alle andre kan. Etter det står eieren (anna) og gruppen (www-data).
| Bokstav | For en fil | For en mappe |
|---|---|---|
r | Lese | Vise navnene i mappen |
w | Endre | Opprette, gi nytt navn til og slette filer |
x | Kjøre som program | Gå inn i mappen og åpne filer i den |
Legg merke til to ting. Uten x på en mappe kommer du ikke til filene i den, selv om de er lesbare. Og den som har w på en mappe, kan slette filer i den, også om de tilhører noen andre.
Rettigheter som tall
Ofte skriver du rettigheter som tre sifre: r teller 4, w 2 og x 1, lagt sammen per gruppe.
| Tall | Rettigheter | Bruk |
|---|---|---|
| 644 | rw-r--r-- | Vanlig fil, for eksempel en nettside eller et bilde |
| 755 | rwxr-xr-x | Mappe, eller et program alle kan bruke |
| 640 | rw-r----- | Konfigurasjon med et passord, lesbar for webserveren via gruppen |
| 600 | rw------- | Hemmelig fil, som authorized_keys, en privat nøkkel eller en .env-fil |
| 700 | rwx------ | Privat mappe, som ~/.ssh |
Endre rettigheter og eier
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 endrer rettighetene, med et tall eller med bokstaver (u, g, o for eier, gruppe og andre, med + eller -). chown eier:gruppe endrer eier og gruppe; det kan bare root, altså med sudo.
For en hel mappe er chmod -R 644 en kjent feil: alle undermapper mister da sin x og blir ubrukelige. Sett mapper og filer hver for seg 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 kjører nginx og PHP-FPM som standard under brukeren www-data. En ryddig oppsett: du eier filene, og gruppen er www-data. Webserveren kan da lese via gruppen, og skrive bare i mappen der det virkelig trengs, som uploads (chmod g+w eller eier www-data på bare den mappen). Ikke gi webserveren skrivetilgang til PHP-filene dine.
777. Da kan alle på serveren lese, endre og kjøre filen eller mappen. Går det en gang galt med ett nettsted eller én tjeneste, kan inntrengeren skrive overalt der 777 er satt. Det egentlige problemet er nesten alltid eieren eller gruppen: løs det i stedet for å åpne alt.Rettigheter for SSH
SSH-serveren kontrollerer rettighetene til nøklene dine. Kan andre skrive i .ssh-mappen din eller hjemmemappen din, ignorerer den nøkkelen din, og du blir spurt om passord igjen, uten noen tydelig feilmelding. Sett det slik:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
Har du opprettet mappen som root for en annen bruker, må du også sette riktig eier, som i En egen bruker med sudo. På AlmaLinux og Rocky Linux kan også SELinux avvise en fil som har riktige rettigheter; for en manuelt opprettet .ssh-mappe hjelper restorecon -Rv ~/.ssh.
s i stedet for en x et sted, som på /usr/bin/passwd? Det er setuid-biten: programmet kjører da med eierens rettigheter. Noen få systemprogrammer trenger det, men sett det aldri selv på et skript. En uventet setuid-fil kan tyde på et innbrudd, se Hacket? De første stegene.Vil du lære mer? Ta det gratis kurset VPS og Linux-serveradministrasjon, leksjon 3.1 Brukere, grupper og filrettigheter.
