A fájljogosultságok értelmezése és helyes beállítása a VPS-én
Az Ön VPS-én minden fájlnak és mappának van tulajdonosa, csoportja és jogosultságai. Ha ezek túl tágak, egy feltört weboldal vagy szolgáltatás bárhová írhat. Ha túl szigorúak, „Permission denied” hibát vagy 403-as hibát kap a weboldalán. Ebben a cikkben megmutatjuk, hogyan olvashatja ki és állíthatja be helyesen a jogosultságokat. Ha DirectAdmin tárhelycsomagja van, tekintse meg a következő cikket: Tiltott (403): Önnek nincs jogosultsága a / elérésére ezen a szerveren.
Jogosultságok kiolvasása az ls -l paranccsal
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
Az első karakter a típust jelzi: a - fájlt, a d mappát, az l pedig hivatkozást (symlinket) jelent. Ezt három, egyenként három karakterből álló csoport követi: mit tehet a tulajdonos, mit tehet a csoport, és mit tehet mindenki más. Ezután következik a tulajdonos (anna) és a csoport (www-data).
| Betű | Fájl esetén | Mappa esetén |
|---|---|---|
r | Olvasás | A mappában lévő nevek lekérdezése |
w | Módosítás | Fájlok létrehozása, átnevezése és törlése |
x | Futtatás programként | Belépés a mappába és a benne lévő fájlok megnyitása |
Két dologra érdemes figyelni. Ha egy mappán nincs x jog, nem fér hozzá a benne lévő fájlokhoz, még akkor sem, ha azok olvashatók. Akinek pedig w joga van egy mappán, az törölheti a benne lévő fájlokat, akkor is, ha azok valaki más tulajdonában vannak.
Jogosultságok számként
A jogosultságokat gyakran három számjeggyel adják meg: az r értéke 4, a w értéke 2, az x értéke 1, és ezeket csoportonként összeadjuk.
| Szám | Jogosultságok | Felhasználás |
|---|---|---|
| 644 | rw-r--r-- | Hagyományos fájl, például weboldal vagy kép |
| 755 | rwxr-xr-x | Mappa, vagy olyan program, amelyet bárki használhat |
| 640 | rw-r----- | Jelszót tartalmazó konfiguráció, amelyet a webszerver a csoporton keresztül olvashat |
| 600 | rw------- | Titkos fájl, például authorized_keys, privát kulcs vagy .env fájl |
| 700 | rwx------ | Privát mappa, például ~/.ssh |
Jogosultságok és tulajdonos módosítása
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
A chmod a jogosultságokat módosítja, számmal vagy betűkkel (u, g, o a tulajdonosra, a csoportra és a többiekre, + vagy - jellel). A chown tulajdonos:csoport a tulajdonost és a csoportot módosítja; ezt csak a root teheti meg, ezért sudo használatával futtassa.
Egy teljes mappánál gyakori hiba a chmod -R 644 használata: ilyenkor minden almappa elveszíti az x jogát, és használhatatlanná válik. A mappákat és a fájlokat a find paranccsal külön állítsa be:
sudo find /var/www/example.com -type d -exec chmod 755 {} +
sudo find /var/www/example.com -type f -exec chmod 644 {} +
A webszerver a csoporton keresztül
Debian és Ubuntu rendszeren az nginx és a PHP-FPM alapértelmezés szerint a www-data felhasználó alatt fut. Egy rendezett beosztás: a fájlok tulajdonosa Ön, a csoport pedig www-data. Így a webszerver a csoporton keresztül olvashat, írni pedig csak abban a mappában tud, ahol erre valóban szükség van, például az uploads mappában (chmod g+w, vagy www-data tulajdonos csak erre a mappára). Ne adjon írási jogot a webszervernek a PHP-fájljaira.
777 jogosultságot. Ilyenkor a szerveren bárki olvashatja, módosíthatja és futtathatja a fájlt vagy a mappát. Ha egyszer akár egyetlen weboldal vagy szolgáltatás is kompromittálódik, a támadó mindenhová írhat, ahol 777 van beállítva. A valódi probléma szinte mindig a tulajdonos vagy a csoport: ezt javítsa ki ahelyett, hogy mindent megnyitna.Jogosultságok az SSH-hoz
Az SSH-szerver ellenőrzi a kulcsai jogosultságait. Ha mások írhatnak a .ssh mappájába vagy a saját könyvtárába, a szerver figyelmen kívül hagyja a kulcsát, és ismét jelszót kér, egyértelmű hibaüzenet nélkül. Állítsa be így:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
Ha a mappát rootként hozta létre egy másik felhasználó számára, a tulajdonost is állítsa be helyesen, ahogyan a Saját felhasználó sudo jogosultsággal című cikkben olvasható. AlmaLinux és Rocky Linux rendszeren a SELinux is megtagadhatja a hozzáférést egy olyan fájlhoz, amelynek jogosultságai egyébként helyesek; kézzel létrehozott .ssh mappa esetén a restorecon -Rv ~/.ssh parancs segít.
x helyett s betűt lát, például a /usr/bin/passwd esetében? Ez a setuid bit: a program ilyenkor a tulajdonos jogosultságaival fut. Néhány rendszerprogramnak szüksége van erre, de saját maga soha ne állítsa be egy szkriptre. Egy váratlan setuid fájl betörésre utalhat, lásd: Feltörték? Az első lépések.Szeretne többet tanulni? Végezze el ingyenes VPS és Linux szerverüzemeltetési tanfolyamunkat, azon belül a 3.1 Felhasználók, csoportok és fájljogosultságok leckét.
