Articles

WordPress engedélyek – Hogyan állítsuk be a megfelelő fájlrendszereket és tulajdonjogokat

  • 12 perc olvasás
  • WordPress,Servers,Security,Techniques (WP)
  • Off-line olvasásra mentve
  • Megosztás Twitteren, LinkedIn
Amikor az emberek a WordPress biztonságáról beszélnek, a fájljogosultságok és a tulajdonjogok általában az utolsó dolog, amire gondolnak. A biztonsági bővítmények telepítése jó gyakorlat, és minden WordPress webhely számára kötelező. Ha azonban a fájlrendszer jogosultságai nincsenek megfelelően beállítva, a legtöbb biztonsági intézkedést könnyen megkerülhetik a behatolók.

Amikor az emberek a WordPress biztonságáról beszélnek, a fájljogosultságok és a tulajdonjogok általában az utolsó dolog, ami eszükbe jut. A biztonsági bővítmények telepítése jó gyakorlat, és minden WordPress webhely számára elengedhetetlen. Ha azonban a fájlrendszer jogosultságai nincsenek megfelelően beállítva, a legtöbb biztonsági intézkedést a behatolók könnyen megkerülhetik.

wordpress permissions

A jogosultságok és a tulajdonjogok meglehetősen fontosak a WordPress telepítéseknél. Ezek megfelelő beállítása a webkiszolgálón az első dolog, amit a WordPress telepítése után meg kell tennie. A rosszul beállított jogosultságok végzetes hibákat okozhatnak, amelyek megállítják a weboldaladat. A helytelen jogosultságok emellett veszélyeztethetik webhelyét, és támadásokra is hajlamossá tehetik.

További olvasnivalók a SmashingMag-on:

  • Mit tegyen, ha webhelye leáll
  • Hogyan tartsa szervezetten a kódolási munkafolyamatát
  • Hogyan derítse ki, miért állt le a webhelye
  • 9 lépés a tárhelyszolgáltatójával való boldog kapcsolathoz

A biztonsági problémákon kívül számos más probléma is adódhat a rossz jogosultságok és tulajdonjogok használatából. Találkozott már üres fehér képernyővel, amikor először próbálta betölteni a webhelyét? Vagy kapott már hibaüzenetet, amikor képeket próbált feltölteni a médiafeltöltőben? A fájlok és mappák jogosultságainak és tulajdonjogának javítása gyakran orvosolja az ilyen típusú problémákat.

Ebben a cikkben mindent megtanítunk a WordPress fájlrendszeri jogosultságairól és tulajdonjogáról: mik ezek, miért fontosak, és hogyan kell beállítani őket. Megtanulsz néhány alapelvet, amelyeket én is követek a fájlrendszerem épségének megőrzése érdekében. Kitérünk a két leggyakoribb WordPress-kiszolgáló-konfigurációra is. Elmagyarázzuk, miben különböznek, és ami még fontosabb, hogyan kell beállítani a megfelelő jogosultságokat és tulajdonjogokat mindegyikhez.

Terminál Vs. FTP kliens

A cikk során a terminált fogjuk használni a jogosultságok és a tulajdonjogok módosítására. Miért ne használhatnánk helyette FTP klienst? Ennek az az oka, hogy az FTP egy kicsit korlátozott a mi igényeinkhez. Az FTP használható fájlok átvitelére, valamint fájl- és mappaengedélyek módosítására, de a tulajdonosi beállítások módosítására nem.

A cikkben felsorolt parancsok végrehajtásához a SSH paranccsal be kell jelentkezni a kiszolgálóra. Ha nem ismeri a terminált és a SSH parancsot, akkor a “Bevezetés a Linux-parancsokba” című cikkben megismerheti őket.”

Felhasználók és csoportok

Mindenek előtt gyorsan beszélnünk kell arról, hogy mik azok a felhasználók és csoportok, mert ezek kéz a kézben járnak a jogosultságok meghatározásakor.

Egyszerűen fogalmazva, a felhasználó egy olyan fiók, amely hozzáféréssel rendelkezik a számítógéphez, a csoport pedig csak egy azonosító a felhasználók egy bizonyos csoportjának. Ez azt jelenti, hogy minden alkalommal, amikor FTP segítségével fájlokat továbbítasz, egy felhasználói fiókot használsz a szerveren. És attól függően, hogy a tárhelyszolgáltató hogyan állította be a fiókját, Ön (a felhasználó) egy vagy több csoporthoz is tartozhat. A felhasználók és csoportok olyanok, mint a WordPressben a felhasználók és szerepek. Mindkettő fogalmilag ugyanaz, azzal a különbséggel, hogy az előbbit a szerverén használja.

A felhasználók és csoportok azért fontosak, mert segítenek azonosítani az összes fájlunk és mappánk jogosultságait. Egy fájl tulajdonosai általában teljes jogosultsággal rendelkeznek rajta; más felhasználók, akik ugyanahhoz a csoporthoz tartoznak, kevesebb jogosultsággal rendelkeznek rajta; míg mindenki másnak esetleg nincsenek jogosultságai rajta. Ezeket a jogosultságokat nevezzük engedélyeknek.

Mi a fájlengedélyek?

A jogosultságok határozzák meg, hogy a felhasználók mit tehetnek egy fájlban. Egy jogosultságot egy számhalmaz, például 644 vagy 777 jelképez, amelyet jogosultsági módnak nevezünk. Ha használtál már korábban bővítményeket a WordPressben, akkor valószínűleg valamelyikük megkért, hogy módosítsd egy fájl vagy könyvtár engedélyeit, mert a bővítmény nem tud írni rá. A fájl jogosultságainak megváltoztatásával engedélyezed a webkiszolgálónak, hogy hozzáférjen az adott fájlhoz vagy mappához.

Gondolj úgy az engedélyezési módra, mint egy sor “ki mit tehet” utasításra, amelyben minden egyes számjegy megfelel az utasítás “ki” részének:

  • Első számjegy. Mit tehet a fájlt birtokló fiók felhasználója
  • Második számjegy. Mit tehet a tulajdonos csoportjába tartozó többi felhasználói fiók
  • Harmadik számjegy. Mit tehet mindenki más felhasználói fiókja (beleértve a weboldal látogatóit is)

A következő szám az állítás “mit” részének felel meg, és ezen számjegyek bármelyikének kombinációjából adódik össze:

  • 4 Fájl olvasása, vagy a mappában lévő fájlok nevének olvasása
  • 2 Fájl írása vagy módosítása, vagy a mappa tartalmának módosítása
  • 1 Fájl végrehajtása vagy futtatása, vagy a mappában lévő fájlok elérése

Ezek a számjegyek a jogosultsági módban a “ki”-hez rendelt jogosultságok. Vegye figyelembe a fenti listában, hogy a jogosultságok mást jelentenek a fájlok és a mappák esetében.

A helyes jogosultsági mód használata igen fontos. Hogy ezt jobban szemléltessük, gondoljunk ismét a WordPressben lévő felhasználókra és szerepkörökre. Egy WordPress webhelyen a közreműködők és a rendszergazdák különböző jogosultságokkal rendelkeznek. A hozzájárulók új blogbejegyzéseket hozhatnak létre, de nem adhatnak hozzá bővítményeket. A rendszergazdák viszont bővítményeket adhatnak hozzá, és blogbejegyzéseket is létrehozhatnak. A rendszergazdák még a weboldal kinézetét is megváltoztathatják, ha akarják. Egy világos vonal választja el, hogy a különböző szerepkörökben lévő felhasználók mit tehetnek. Ugyanez a helyzet az engedélyezési módokkal is, azzal a különbséggel, hogy a blogbejegyzések és témaopciók helyett a szerveren lévő fájlokkal és mappákkal van dolgunk.

Az engedélyezési módok módosítása

A FTP-kliensek általában biztosítanak egy olyan felületet, ahol kényelmesen módosíthatja a fájlok és mappák engedélyezési módját. Íme egy képernyőkép az FTP-kliensem felületéről:

Example of a permission mode interface.
Példa az engedélyezési mód felületére.

Ha hozzáférése van a szerver termináljához, a chmod parancsot is használhatja egy fájl vagy mappa engedélyezési módjának módosítására:

sudo chmod 644 <file>

Az összes fájl vagy mappa engedélyezési módjának módosításához használja a chmod parancsot a find paranccsal együtt. Ezzel például az összes fájlt megváltoztathatod 644:

sudo find . -type f -exec chmod 644 {} +

Vagy használhatod az összes mappádat 755:

sudo find . -type d -exec chmod 755 {} +

Az engedélyezési módok megváltoztatásához lásd a “Fájlengedélyek megváltoztatása a WordPress kódexben” című útmutatót.

A 644 és 777 közötti különbség

Nézzünk meg néhány engedélyezési módot és azt, hogy ezek hogyan hatnak a weboldalunkra.

Mit jelentene egy PHP-szkript, amelynek engedélyezési módja 644? Az engedélyezési módok működésének fenti magyarázatát követve megfejthetjük, hogy ez a mód mit enged meg a felhasználóknak a szkriptünkkel:

  • A tulajdonos jogosultságai “olvasás” (4) + “írás” (2) = 6
  • A tulajdonos csoportos jogosultságai “olvasás” (4) = 4
  • Mindenki más jogosultságai “olvasás” (4) = 4

Egyszerű nyelven ez azt jelenti, hogy:

  • ha a szkript a miénk, akkor olvashatjuk és módosíthatjuk;
  • mindenki más csak olvashatja.

Amint látjuk, a 644 egy jó engedélyezési mód a PHP-szkriptünk számára. Mi módosíthatunk rajta, és a webszerverünk is olvashatja.

Most nézzük meg a mappákat. Mi lenne, ha egy olyan mappa lenne a tulajdonunkban, amelynek az engedélyezési módja 777? Ez az engedélyezési mód a következőképpen bontható le:

  • A tulajdonos jogosultságai: “olvasás” (4) + “írás” (2) + “végrehajtás” (1) = 7
  • A tulajdonos csoportos jogosultságai: “olvasás” (4) + “írás” (2) + “végrehajtás” (1) = 7.
  • Mindenki más jogosultságai: “olvasás” (4) + “írás” (2) + “végrehajtás” (1) = 7

Ez azt jelenti, hogy

  • bárki megkaphatja a mappánkban lévő fájlnevek listáját;
  • bárki létrehozhat, módosíthat és törölhet bármely fájlt a mappánkban;
  • bárki hozzáférhet a mappánkban lévő fájlokhoz.

Ez nyilvánvaló, hogy a 777 egy rossz jogosultsági mód bármihez a WordPress weboldalunkon, mert bármelyik látogató képes lenne fájlokat hozzáadni a könyvtárunkhoz, vagy akár szkripteket törölni. Rosszabb esetben bárki képes lenne rosszindulatú kódot beilleszteni és veszélyeztetni a weboldalunkat.

WordPress szerverkonfigurációk

Most már tudunk az engedélyekről és azok olvasásáról. De mielőtt hozzálátnánk az összes jogosultságunk megváltoztatásához, meg kell értenünk, hogyan van beállítva a szerverünk. Mivel a jogosultságok a felhasználói fiókokkal és csoportokkal foglalkoznak, tudnunk kell, hogyan fut a WordPress weboldalunk.

Egy csomó különböző szerverkonfiguráció létezik. A különböző konfigurációknak különböző jogosultsági módokra van szükségük ahhoz, hogy a WordPress helyesen és biztonságosan működjön. Mi most csak a két leggyakoribb konfigurációról és a hozzájuk tartozó megfelelő jogosultságokról fogunk beszélni:

  • Standard szerverkonfiguráció:
    • Egy felhasználói fiókkal rendelkezik.
    • A webszerver egy másik felhasználói fiókként fut.
  • Megosztott kiszolgáló konfiguráció vagy suEXEC konfiguráció:
    • Egy felhasználói fiókkal rendelkezik.
    • A kiszolgálót használó más személyek felhasználói fiókkal rendelkeznek, és esetleg az Ön felhasználói fiókjával azonos csoportot használnak.
    • A webkiszolgálója a WordPress fájlok tulajdonosaként fut.

A fő különbség a kettő között abban van, hogy a webkiszolgáló hogyan fut.

A standard WordPress szerverkonfiguráció jogosultságai

A standard WordPress konfigurációk kicsit több munkát igényelnek, mint a megosztott szerverkonfigurációk, mivel a webkiszolgálónak nincs kapcsolata a felhasználói fiókunkkal.

Fájl- és mappatulajdonjogok a WordPress számára

Először a WordPress fájljaink fájl- és mappatulajdonjogait kell beállítanunk. A következőkről kell meggyőződnünk:

  • hogy a felhasználói fiókunk az összes WordPress fájl és mappa tulajdonosa,
  • hogy a felhasználói fiókunk és a webkiszolgáló felhasználói fiókja ugyanahhoz a csoporthoz tartozik.

Azoknak a csoportoknak a kiderítéséhez, amelyekhez a felhasználói fiókod tartozik, használhatod ezt a parancsot a szerver termináljában:

groups

Ezután, hogy megtudd, hogy a webszervered melyik csoporthoz tartozik, ideiglenesen beillesztheted ezt a PHP-töredéket az egyik WordPress szkriptedbe:

echo exec( 'groups' );

Ha a felhasználója és a webkiszolgáló nem ugyanahhoz a csoporthoz tartozik, akkor a következő paranccsal a terminálban hozzáadhatja a felhasználóját a webkiszolgáló egyik csoportjához:

sudo usermod -a -G <a-common-group-name> myuser

Végül, hogy megbizonyosodjunk arról, hogy a WordPress mappánkban minden a felhasználói fiókunkhoz és az imént hozzáadott megosztott csoporthoz tartozik, végezzük el a következő parancsot a WordPress mappában:

sudo find . -exec chown myuser:a-common-group-name {} +

Permissions for WordPress

Minden fájlunknak és mappánknak most már a megfelelő tulajdonjoggal kell rendelkeznie. Most itt az ideje, hogy beállítsuk a jogosultsági módokat. Az egyszerűség kedvéért csak a következőket kell megjegyeznünk:

  • Minden fájl legyen 664.
  • Minden mappa legyen 775.
  • wp-config.php legyen 660.

A következőket próbáljuk elérni az engedélyezési módok ezen beállításával:

  • A felhasználói fiókunk olvashatja és módosíthatja a fájljainkat.
  • A WordPress (a webkiszolgálónkon keresztül) olvashatja és módosíthatja a szkriptjeinket.
  • A WordPress létrehozhatja, módosíthatja vagy törölheti a fájlokat és mappákat.
  • Mások nem láthatják az wp-config.php-ban lévő adatbázisunk hitelesítő adatait.

Elképzelhető, hogy arra gondolsz, hogy a WordPress számára teljes jogosultságot engedélyezni a mappáinkhoz nem biztonságos. Ne aggódj – azért tesszük ezt, mert a WordPressnek szüksége van bizonyos funkciókra a fájlok létrehozásához és módosításához. A WordPress lehetővé teszi számunkra, hogy témákat és bővítményeket töltsünk fel és távolítsunk el, sőt, szkripteket és stílusokat szerkesszünk az adminisztrációs háttértárból. Ilyen típusú engedélyek nélkül minden alkalommal kézzel kellene feltöltenünk témákat és bővítményeket FTP segítségével.

Az engedélyezési módok megváltoztatásához használhatja FTP-kliensét, vagy a WordPress könyvtárában a következő parancsokkal gyorsan beállíthatja az összes fájl és mappa engedélyeit:

sudo find . -type f -exec chmod 664 {} +sudo find . -type d -exec chmod 775 {} +sudo chmod 660 wp-config.php

Megjegyzendő, hogy egyes webszerverek szigorúbbak, mint mások. Ha a tiéd szigorú, akkor a wp-config.php 660-re állítása megakadályozhatja a webhelyed működését. Ebben az esetben hagyja csak 664-nak.

Jogosultságok megosztott szerverkonfigurációhoz vagy SuEXEC-konfigurációhoz

A megosztott szerverkonfigurációk engedélyeit könnyebb megvalósítani. A tulajdonjoggal nem foglalkozunk, mert a webkiszolgáló a fájljaink és mappáink tulajdonosaként fut. Mivel a felhasználói fiókunk és a webkiszolgáló azonos jogosultságokkal rendelkezik (mindkettő tulajdonos), rögtön belevethetjük magunkat a jogosultsági módok módosításába:

  • Minden fájl legyen 644.
  • Minden mappa legyen 755.
  • wp-config.php legyen 600.

Az előző jogosultsági módokhoz hasonlóan ezek a következőképpen oszlanak meg:

  • A felhasználói fiókunk olvashatja és módosíthatja a fájljainkat.
  • A WordPress (a webszerverünkön keresztül és a fiók tulajdonosaként) olvashatja és módosíthatja a szkriptjeinket.
  • A WordPress létrehozhatja, módosíthatja vagy törölheti a fájlokat és mappákat.
  • Mások nem láthatják az wp-config.php adatbázisunk hitelesítő adatait.

Az engedélyezési módok megváltoztatásához használhatunk FTP-klienst, vagy a WordPress könyvtárunkban a következő parancsokkal gyorsan beállíthatjuk az összes fájlunk és mappánk engedélyeit:

sudo find . -type f -exec chmod 644 {} +sudo find . -type d -exec chmod 755 {} +sudo chmod 600 wp-config.php

A WordPress szerver standard konfigurációjához hasonlóan az Ön szervere szigorúbb lehet, mint másoké, és nem engedheti meg, hogy az wp-config.php 600 legyen. Ebben az esetben beállíthatja egy engedékenyebb 640-re; ha ez még mindig nem működik, akkor használja a 644-t.

Mindig kövesse ezeket az irányelveket, és a WordPress fájljai biztonságban lesznek a betolakodóktól.

Gyakori buktatók

Az emberek gyakori hibája, hogy a uploads mappát 777-re állítják. Néhányan azért teszik ezt, mert hibát kapnak, amikor megpróbálnak feltölteni egy képet a weboldalukra, és a 777 gyorsan megoldja ezt a problémát. De soha ne adjon korlátlan hozzáférést mindenkinek, különben támadhatóvá teszi a webkiszolgálót. Ha követi az ebben a cikkben ismertetett irányelveket, akkor nem okozhat gondot a fájlok feltöltése a webhelyére.

Egy bővítmény azonban időnként azt kéri, hogy egy fájlt 777-re állítson be. Ilyenkor ideiglenesen beállíthatja 777-re, de ügyeljen arra, hogy ha végzett, állítsa vissza az eredeti engedélyezési módra.

Következtetés

Most megtanultuk a WordPress webhely megfelelő engedélyeit és a fájlok tulajdonjogát. Azt is megtanultuk, hogy kerüljük a 777 engedélyezési módot, mert az veszélyezteti a webkiszolgálót.