CHMOD és CHOWN a gyakorlatban

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.

  1. 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.

  2. 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.

  3. 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.

  1. Read (r) – Olvasás: A fájl tartalmának megtekintése. Könyvtárak esetén a mappa tartalmának listázása.

  2. 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.

  3. 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.

  1. Egy rosszindulatú hacker vagy egy automatizált bot felfedezi a fájlt.

  2. Mivel írási joga van a „többiek” (Others) kategóriában, módosíthatja a fájl tartalmát.

  3. Beszúrhat egy kártékony kódot (malware).

  4. Ez a kód lefut minden alkalommal, amikor egy gyanútlan látogató megnyitja az oldalt.

  5. 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

  1. Jelentkezzünk be a szerverre a klienssel.

  2. Kattintsunk jobb gombbal a módosítani kívánt fájlra vagy mappára.

  3. Válasszuk a „Tulajdonságok” (Properties) menüpontot.

  4. A felugró ablakban látható a „Jogosultságok” (Permissions) szekció.

  5. Itt pipákkal állíthatjuk be az R, W, X jogokat a három felhasználói körhöz.

  6. 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 /tmp kö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.

  1. Helyes: A mappa tulajdonosa legyen a webkiszolgáló felhasználója (chown), a jog pedig 755.

  2. 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.

Ajánlott cikkek