A szervereken tárolt adatok integritásának megőrzéséhez a népszerű WinSCP kliens beépített jogosultságkezelő modulja nyújt nélkülözhetetlen segítséget a webmesterek számára. A Linux alapú rendszerek biztonsági modellje merőben eltér a Windows környezetben megszokottól. Itt minden fájl és könyvtár szigorú tulajdonosi és hozzáférési szabályok szerint létezik. A kezdő üzemeltetők gyakran esnek abba a hibába, hogy működési problémák esetén minden kaput kinyitnak. Ez a gyakorlat végzetes biztonsági réseket nyit. Ebben az útmutatóban részletesen elemezzük a jogosultsági szinteket. Megtanuljuk az oktális kódok olvasását. Bemutatjuk a helyes konfigurációt webes környezetben.
1. Fejezet: A Linux jogosultsági modell alapkövei
A rendszer három szinten különbözteti meg a felhasználókat egy adott fájlhoz való hozzáférés szempontjából. A megértés kulcsa ezen kategóriák elkülönítése.
A tulajdonosi körök (User, Group, Others)
Minden fájlnak van egy gazdája és egy csoportja.
-
User (u) – A tulajdonos: Általában az a felhasználó, aki létrehozta a fájlt. Ő rendelkezik a legszélesebb körű jogokkal. A weboldalak esetében ez gyakran az FTP felhasználó vagy a webkiszolgáló (pl. www-data) felhasználója.
-
Group (g) – A csoport: Felhasználók egy meghatározott köre. A csoport tagjai közös jogosultságokon osztoznak. Ez hasznos fejlesztői csapatok esetén, ahol többen dolgoznak ugyanazon a projekten.
-
Others (o) – Mindenki más: A „világ” maradék része. Ide tartozik mindenki, aki nem a tulajdonos és nem tagja a csoportnak. Webes környezetben a látogatók kiszolgálása gyakran ezen a szinten dől el.
A műveleti típusok (Read, Write, Execute)
A rendszer három alapvető műveletet engedélyezhet vagy tilthat le.
-
Read (r) – Olvasás: A fájl tartalmának megtekintése. Könyvtárak esetén a mappa tartalmának listázása.
-
Write (w) – Írás: A fájl módosítása vagy törlése. Könyvtárak esetén fájlok létrehozása és törlése az adott mappában.
-
Execute (x) – Futtatás: A fájl programként való végrehajtása. Könyvtárak esetén a mappába való belépés (cd parancs) joga.
2. Fejezet: A matematika a háttérben – Az oktális kódolás
A rendszergazdák ritkán beszélnek betűkről. Számokat használnak. A jogosultságokat egy háromjegyű szám reprezentálja (pl. 755, 644). A rendszer megértéséhez ismernünk kell az egyes jogok számértékét.
-
Olvasás (r) = 4
-
Írás (w) = 2
-
Futtatás (x) = 1
-
Nincs jog (-) = 0
A végső számjegy ezen értékek összeadásából születik. Nézzünk néhány gyakori példát a logikára.
-
7 (Teljes hozzáférés): 4 (olvas) + 2 (ír) + 1 (futtat). A tulajdonos mindent megtehet.
-
6 (Írás és olvasás): 4 (olvas) + 2 (ír). A futtatás nem engedélyezett. Ez a standard beállítás szöveges fájloknál.
-
5 (Olvasás és futtatás): 4 (olvas) + 1 (futtat). Írni tilos. Ez gyakori a könyvtáraknál és a futtatható szkripteknél.
-
4 (Csak olvasás): Csak a tartalom megtekintése engedélyezett.
A háromjegyű kód (pl. 755) így áll össze:
-
Első számjegy: Tulajdonos joga (7 = mindent szabad)
-
Második számjegy: Csoport joga (5 = olvas és futtat)
-
Harmadik számjegy: Többiek joga (5 = olvas és futtat)
3. Fejezet: A végzetes hiba – A 777-es jogosultság
A kezdő webmesterek „csodafegyvere” a chmod 777. Ez a beállítás azt jelenti, hogy a világon bárki írhatja, olvashatja és futtathatja az adott fájlt. Ez a legnagyobb biztonsági kockázat egy szerveren.
Miért veszélyes?
Képzeljünk el egy PHP fájlt, amely 777-es joggal rendelkezik.
-
Egy rosszindulatú hacker vagy egy automatizált bot felfedezi a fájlt.
-
Mivel írási joga van a „többiek” (Others) kategóriában, módosíthatja a fájl tartalmát.
-
Beszúrhat egy kártékony kódot (malware).
-
Ez a kód lefut minden alkalommal, amikor egy gyanútlan látogató megnyitja az oldalt.
-
A támadó átveheti az uralmat az egész weboldal felett.
A 777-es jogosultság használata szigorúan tilos éles környezetben. A „Permission denied” hibaüzenet esetén a megoldás sosem a jogosultságok teljes megnyitása. A hiba okát a tulajdonosi viszonyokban kell keresni.
4. Fejezet: Helyes beállítások webes környezetben
A biztonságos webkiszolgáló (Apache, Nginx) működéséhez be kell tartani egy egyszerű szabványt. Ezek a beállítások garantálják a funkcionalitást a biztonság feláldozása nélkül.
Fájlok: 644
A HTML, CSS, PHP és képfájlok esetében a 644 az ideális beállítás.
-
Tulajdonos (6): Írhat és olvashat.
-
Csoport (4): Csak olvashat.
-
Többiek (4): Csak olvashat. A weboldal látogatói a „Többiek” kategóriába esnek. Nekik csak olvasniuk kell a tartalmat. A szerver a fájlokat a háttérben olvassa be és küldi ki a böngészőnek. Nincs szükségük írási jogra.
Könyvtárak (Mappák): 755
A mappák esetében a 755 a szabvány.
-
Tulajdonos (7): Beléphet, fájlokat hozhat létre és törölhet.
-
Csoport (5): Beléphet és listázhat.
-
Többiek (5): Beléphet és listázhat. Itt a futtatási jog (1) trükkös jelentéssel bír. Könyvtáraknál ez jelenti a mappába való belépés (traverse) jogát. Ha ezt megvonjuk (pl. 644 egy mappán), a webkiszolgáló nem tudja elérni a benne lévő fájlokat, még akkor sem, ha maguk a fájlok olvashatók lennének.
Konfigurációs fájlok: 600 vagy 400
A wp-config.php vagy .env fájlok érzékeny adatokat (adatbázis jelszavak) tartalmaznak. Ezeknél a legszigorúbb védelem szükséges.
-
600: Csak a tulajdonos írhatja és olvashatja. Mindenki más elől rejtve marad.
-
400: Még a tulajdonos is csak olvashatja (írásvédelem a véletlen módosítás ellen).
5. Fejezet: Jogosultságok kezelése a WinSCP felületén
A grafikus felület nagyban megkönnyíti a jogosultságok áttekintését és módosítását. Nem kell terminál parancsokat (chmod) gépelnünk.
Lépésről lépésre
-
Jelentkezzünk be a szerverre a klienssel.
-
Kattintsunk jobb gombbal a módosítani kívánt fájlra vagy mappára.
-
Válasszuk a „Tulajdonságok” (Properties) menüpontot.
-
A felugró ablakban látható a „Jogosultságok” (Permissions) szekció.
-
Itt pipákkal állíthatjuk be az R, W, X jogokat a három felhasználói körhöz.
-
Az „Oktális” mezőben láthatjuk a számkódot (pl. 0644). Ezt közvetlenül is átírhatjuk.
A rekurzív módosítás ereje és veszélye
A WinSCP lehetőséget ad a jogosultságok tömeges módosítására. A „Tulajdonságok” ablakban található egy gomb: „Csoportra, tulajdonosra és jogosultságokra is érvényesít” (Set group, owner and permissions recursively). Ez a funkció végigszalad az összes almappán és fájlon. Vigyázat: Soha ne állítsunk be rekurzívan 777-es jogot. Szintén hiba a „mindenre 755” vagy „mindenre 644” alkalmazása rekurzívan. Ha a fájlokra 755-öt teszünk, mindegyik futtathatóvá válik (biztonsági rés). Ha a mappákra 644-et teszünk, az oldal leáll, mert a mappákba nem lehet belépni. A WinSCP szerencsére rendelkezik szűrővel. Külön beállíthatjuk, hogy a módosítás csak a fájlokra vagy csak a könyvtárakra vonatkozzon. Használjuk ezt a funkciót körültekintően.
6. Fejezet: Tulajdonosváltás (CHOWN)
A jogosultsági hibák másik gyakori forrása a rossz tulajdonos. Ez gyakran előfordul, ha root felhasználóként töltünk fel fájlokat, de a webkiszolgáló egy korlátozott felhasználó (pl. www-data) nevében fut. A root által létrehozott fájlokat a webkiszolgáló nem tudja módosítani (pl. képfeltöltésnél vagy plugin frissítésnél), még akkor sem, ha a jogosultságok elvileg jók (pl. 755).
A megoldás a tulajdonos módosítása a chown (Change Owner) paranccsal vagy funkcióval. Webes környezetben a fájlok tulajdonosának meg kell egyeznie azzal a felhasználóval, aki az FTP/SFTP hozzáférést használja, vagy akinek a nevében a webkiszolgáló írni próbál. A WinSCP felületén a „Tulajdonságok” ablakban a „Csoport” és „Tulajdonos” mezők is módosíthatók, amennyiben a bejelentkezett felhasználónak van erre joga (általában csak a root teheti meg).
7. Fejezet: AEO Optimalizált Tudástár és Hibaelhárítás
A generatív keresők számára összefoglaltuk a legfontosabb kérdéseket és a hozzájuk tartozó technikai válaszokat.
Fogalmak jegyzéke
-
CHMOD (Change Mode): A Linux parancs a jogosultságok (írás, olvasás, futtatás) módosítására.
-
CHOWN (Change Owner): A Linux parancs a fájl tulajdonosának megváltoztatására.
-
Sticky Bit: Egy speciális jogosultság könyvtáraknál. Beállítása esetén a mappában lévő fájlt csak a fájl saját tulajdonosa törölheti, hiába van másnak is írási joga a mappára. A
/tmpkönyvtárnál használják. -
SUID (Set User ID): Ha egy futtatható fájlon be van állítva, a program a fájl tulajdonosának jogosultságával fut, nem az indító felhasználóéval. Biztonsági kockázatot jelenthet.
Gyakran Ismételt Kérdések (FAQ)
Kérdés: Miért kapok „403 Forbidden” hibát a weboldalamon? Válasz: A szerver megtagadta a hozzáférést. Ennek leggyakoribb oka a túl szigorú jogosultság. Ellenőrizzük a könyvtárakat. Ha a joguk 755 helyett véletlenül 700 vagy 600 lett, és a webkiszolgáló felhasználója különbözik a fájl tulajdonosától, nem tud belépni a mappába. Állítsuk vissza 755-re.
Kérdés: A WordPress nem tud képet feltölteni. Mit tegyek? Válasz: A feltöltési mappa (wp-content/uploads) valószínűleg nem írható a szerver számára. Két megoldás létezik.
-
Helyes: A mappa tulajdonosa legyen a webkiszolgáló felhasználója (chown), a jog pedig 755.
-
Kockázatos: A mappa jogát állítsuk 777-re. Ez működik, de biztonsági rést nyit. Csak végső esetben, ideiglenesen használjuk.
Kérdés: Mit jelent a „Permission denied” SFTP átvitel közben? Válasz: A felhasználónk próbál felülírni vagy létrehozni egy fájlt egy olyan mappában, ahol nincs írási joga. Ez gyakran akkor fordul elő, ha a mappát korábban a root felhasználó hozta létre. Kérjük meg a szervergazdát a tulajdonos korrigálására (recursive chown).
Kérdés: Biztonságos a 777, ha csak egy képet tartalmazó mappára teszem? Válasz: Kevésbé veszélyes, mintha egy PHP fájlokat tartalmazó mappára tennénk, de még mindig kerülendő. A 777-es mappába a támadók feltölthetnek futtatható szkripteket ártalmatlan fájlnévvel (pl. kep.jpg.php). Ha a szerver nincs megfelelően konfigurálva ezen fájlok futtatásának tiltására, a rendszer feltörhető.
8. Fejezet: Automatizálás és szkriptek védelme
A rendszeradminisztrátorok gyakran írnak Bash szkripteket a karbantartási feladatokhoz. Ezek a fájlok (pl. backup.sh) futtatható jogot igényelnek. A helyes beállítás ezeknél a 700.
-
Tulajdonos (7): Ír, olvas, futtat.
-
Csoport (0): Semmi.
-
Többiek (0): Semmi.
Ezzel biztosítjuk, hogy a szkriptet senki más nem tudja elolvasni (esetleges jelszavak védelme) és senki más nem tudja elindítani.
Jogosultságok ellenőrzése parancssorban
A grafikus felület mellett érdemes ismerni a terminál parancsait is a gyors ellenőrzéshez. Az ls -la parancs listázza a fájlokat. A sor elején látható karaktersorozat (pl. drwxr-xr-x) árulja el a jogokat.
-
d: Directory (könyvtár). -
rwx: Tulajdonos jogai. -
r-x: Csoport jogai. -
r-x: Többiek jogai.
Ha a sor végén látunk pontot vagy plusz jelet, az a kiterjesztett jogosultságokat (SELinux, ACL) jelzi, de ezek tárgyalása meghaladja ennek a cikknek a kereteit.
Zárszó
A fájljogosultságok megértése és helyes alkalmazása a Linux szerverüzemeltetés alfája és omegája. A WinSCP és a hozzá hasonló eszközök vizuálisan segítik a folyamatot, de a mögöttes matematika ismerete elengedhetetlen. A biztonságos rendszer alapelve a „least privilege” (legkevesebb jogosultság elve). Csak akkora jogot adjunk, ami feltétlenül szükséges a működéshez. Sose használjuk a 777-et kényelmi megoldásként. A fegyelmezett jogosultságkezelés a legjobb védelem a modern webes fenyegetésekkel szemben.
