WordPress toimii useimmiten Linux-palvelimella, jossa tiedostojen oikeudet ja omistajuus määrittelevät, kuka saa lukea, kirjoittaa ja suorittaa mitäkin. Tämä ei ole pelkkä käyttöjärjestelmätason yksityiskohta, vaan suoraan yhteydessä sivuston turvallisuuteen, päivitettävyyteen ja toimivuuteen.
Väärin asetetut oikeudet voivat johtaa tilanteeseen, jossa:
-
WordPress ei voi päivittää lisäosia
-
teemat eivät tallennu
-
sivusto altistuu murroille
-
tai pahimmillaan koko palvelin vaarantuu
Linuxin oikeusmallin perusidea
Linuxissa jokaisella tiedostolla on:
-
omistaja (user)
-
ryhmä (group)
-
oikeudet (permissions)
Oikeudet jaetaan kolmeen tasoon:
-
Omistaja
-
Ryhmä
-
Muut käyttäjät
Ja kolmeen toimintoon:
-
luku (r = read)
-
kirjoitus (w = write)
-
suoritus (x = execute)
Esimerkiksi:
-rw-r--r--
tarkoittaa:
-
omistaja: luku + kirjoitus
-
ryhmä: luku
-
muut: luku
WordPressin tiedostorakenne
WordPress-sivustossa keskeisiä hakemistoja ovat:
-
wp-content/ -
wp-content/plugins/ -
wp-content/themes/ -
wp-content/uploads/
Näissä hakemistoissa tapahtuu:
-
lisäosien asennus
-
teemojen päivitys
-
mediatiedostojen lataus
Siksi niiden oikeudet ovat erityisen tärkeitä.
Suositellut oikeudet
Yleisesti suositellut asetukset WordPressille ovat:
Tiedostot
644
Tämä tarkoittaa:
-
omistaja: luku + kirjoitus
-
muut: vain luku
Hakemistot
755
Tämä tarkoittaa:
-
omistaja: luku + kirjoitus + suoritus
-
muut: luku + suoritus
Suoritus (x) hakemistolle tarkoittaa oikeutta “astua sisään” hakemistoon.
Omistajuuden merkitys
Oikeudet yksin eivät riitä. Omistajuus ratkaisee, kuka voi muokata tiedostoja.
Tyypillinen tilanne:
-
palvelinprosessin käyttäjä:
www-data,apachetainginx -
SSH-käyttäjä: esimerkiksi
user123
Jos WordPress-tiedostot omistaa väärä käyttäjä:
-
WordPress ei voi päivittää lisäosia
-
päivitys epäonnistuu
-
syntyy tiedostovirheitä
Tyypillinen oikea omistajuus
chown -R www-data:www-data /var/www/html
Tai vaihtoehtoisesti:
-
omistaja: SSH-käyttäjä
-
ryhmä: web-palvelimen käyttäjä
-
oikeudet: ryhmäkirjoitus sallittu
Yleiset virheasetukset
777-oikeudet
Monet korjaavat oikeusongelman näin:
chmod -R 777 wp-content
Tämä tarkoittaa:
-
kaikki voivat lukea
-
kaikki voivat kirjoittaa
-
kaikki voivat suorittaa
Se on käytännössä avoin ovi hyökkääjälle.
Jos sivustossa on haavoittuvuus, hyökkääjä voi:
-
ladata haittakoodia
-
muokata tiedostoja
-
ottaa sivuston haltuun
Sekalainen omistajuus
Tilanne, jossa:
-
osa tiedostoista on
root-omisteisia -
osa
www-data-omisteisia -
osa käyttäjän omisteisia
Tämä aiheuttaa:
-
päivitysvirheitä
-
tiedostojen lukitusongelmia
-
vaikeasti debugattavia tilanteita
WordPressin päivitysmekanismi ja oikeudet
WordPress käyttää useita tiedostojärjestelmämetodeja:
-
suora tiedostokirjoitus
-
FTP
-
SSH
Jos oikeudet ovat kunnossa:
-
WordPress käyttää suoraa kirjoitusta
-
päivitykset toimivat automaattisesti
Jos eivät:
-
WordPress pyytää FTP-tunnuksia
-
päivitysprosessi hidastuu
Turvallinen peruskonfiguraatio
Yleinen turvallinen malli:
-
tiedostot: 644
-
hakemistot: 755
-
omistaja: sama kuin web-palvelimen käyttäjä
-
wp-config.php: 600 tai 640
Esimerkki:
chmod 644 wp-config.php
chmod -R 755 wp-content
chown -R www-data:www-data /var/www/html
Erityistapaus: uploads-hakemisto
wp-content/uploads tarvitsee kirjoitusoikeudet, koska:
-
käyttäjät lataavat mediaa
-
WordPress luo kuvakokoja
Tämän hakemiston oikeudet ja omistajuus on oltava oikein, muuten:
-
kuvien lataus epäonnistuu
-
media library ei toimi
Yhteenveto
WordPressin tiedostojen oikeudet ja omistajuus ovat keskeinen osa:
-
turvallisuutta
-
päivitettävyyttä
-
sivuston vakautta
Oikea perusasetelma:
-
tiedostot: 644
-
hakemistot: 755
-
yhtenäinen omistajuus
Väärät oikeudet voivat rikkoa päivitykset tai avata oven hyökkäyksille. Linuxin oikeusmalli ei ole WordPressin oma ominaisuus, mutta se toimii kuin näkymätön vartija palvelimen ovella. Jos vartija ei tiedä, kuka saa mennä sisään ja kuka ei, koko talo muuttuu nopeasti hyvin epäluotettavaksi paikaksi.
