Az engedélyek kérdése a Linuxban és annak helyes használata a "chmod" paranccsal nagyon gyakran kitett és tárgyalt az SL Közösségek területén A szerverek és rendszerek haladó felhasználói, technikusai és rendszergazdái. Például a blogunkban van 2 nagyon jó publikáció róla, amelyek a következők: Engedélyek és jogok Linux alatt (01/12) y Alapvető engedélyek GNU / Linux-ban chmod-tal (08/16).
De sokszor SW fejlesztők kik készítik az alkalmazásokat és rendszereket, többségükben rendszereket és weboldalakat, Fejlesztésükkor általában nem veszik figyelembe, hogy melyik jogosultságokat kell rájuk alkalmazni, majdnem mindig a szerver és a rendszergazdák oldalán hagyja a feladatot. Ebben a kiadványban megpróbálunk egy kis útmutatást adni ezzel kapcsolatban számukra.
Bevezetés
A parancs "chmod»Nagyon hasznos és fontos a Linux alapú operációs rendszerek fejlett használatához. Mivel azonban a "chmod" nem önálló csomag, hanem integrálva van a csomagba "coreutils«. A "coreutils" csomag egy olyan csomag, amely számos alapvető eszközt biztosít az operációs rendszer számára a fájlkezeléshez, a parancsértelmezőkhöz és a szövegszerkesztéshez. És általában már alapértelmezés szerint telepítve van a legtöbb Linux Distros-ba.
Pontosabban, ez a csomag a "chmod" parancs mellett a következő parancsokat tartalmazza: arch base64 basename cat chcon chgrp chmod chown chroot cksum comm cp csplit cut date dd df dir dircolors dirname du echo env expand expr factor false flock fmt fold csoportok head hostid id install link link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nicecmoh od paste pathchk pinky pr printenv printf ptx pwd readlink realpath rm rmdir runcon sha * sum seq shred sleep sort sort split stat stty sum sync tac tail tee test timeout touch tr true truncate tsort tty uname expandand uniq unlink users users vdir wc who whoami yes.
Összefoglalva, a "chmod" parancs lehetővé teszi a fájlok és mappák engedélyeinek kezelését az operációs rendszer által kezelt összes felhasználó számára. Ennek oka, hogy a Linux mint operációs rendszer többfelhasználós, ezért a munkakörnyezetnek engedélyezési rendszert kell biztosítania a fájlok és könyvtárak engedélyezett műveleteinek vezérléséhez, amely magában foglalja az összes rendszererőforrást és eszközt.
tartalom
Használja SW fejlesztőknek
A kiszolgáló és rendszergazdának (Sysadmin) annak eldöntésekor, hogy milyen jogosultságokat adjon az X szintű felhasználónak vagy profilnak az X fájlban vagy mappában, pontosan tudnia kell, hogy milyen típusú műveleteket vagy folyamatokat kell végrehajtania rajtuk. Webkiszolgáló esetén a felhasználókat 2 típusba sorolhatjuk:
- Rendszergazda felhasználók: Akiknek van egy felhasználói fiókjuk a szerveren a bejelentkezéshez, rendelkeznek bizonyos jogosultságokkal, és akik általában végrehajtanak bizonyos módosításokat (másolás / törlés / módosítás) a rendszerben vagy a webhelyen, például SSH vagy SFTP segítségével telepítve.
- Nem rendszergazdai felhasználók: Hogy nincs felhasználói fiókjuk a szerveren, mivel ők csak a Webhely és a Web Rendszer látogatói. Ezért nincsenek engedélyeik a fájlok és mappák közvetlen elérésére, hanem inkább kölcsönhatásba lépnek velük a Webhely felületén vagy a telepített webrendszeren keresztül.
Amikor azonban a Sysadmin nem kap elég vagy megfelelő összeget az SW Developers által nyújtott információk, dokumentáció vagy támogatás a telepítendő webhelyek és rendszerek képességeiről, funkcióiról vagy fájlszerkezetéről végül a megbízható maximumot hajtja végre, amely ebben az esetben általában:
chmod 777 -R /var/www/sistema-web
És sokszor a vége:
chown root:root -R /var/www/sistema-web
Figyelmeztetés
Ez általában rossz gyakorlat, de általában elkerüli az engedélyek problémáját és a telepített webhelyek és rendszerek rossz végrehajtását. Rossz gyakorlat, mivel amikor a chmod 777 parancsot ilyen módon hajtják végre egy webhely vagy webrendszer mappáján és fájljain, egyáltalán nincs biztonság.
Lehetővé teszi a Webhely vagy a Web Rendszer bármely online felhasználójának, hogy minden akadály nélkül megváltoztathassa vagy törölje a Webhely vagy webrendszer fájlstruktúrájában található fájlokat a Web szerveren vagy azon kívül. Mivel nem szabad elfelejteni, hogy a webkiszolgáló jár el a látogató felhasználók nevében, és képes megváltoztatni ugyanazokat a fájlokat, amelyeket éppen futtatnak.
És ha a felhasználó támadó, és valamilyen sebezhetőséget észlel a webhelyen vagy a webrendszerben, akkor könnyen kihasználhatja azt annak kiküszöbölésére, letiltására, vagy ami még rosszabb, helyezzen be rosszindulatú kódot az adathalász támadások végrehajtásához, vagy ellopjon információkat a szerverről anélkül, hogy bárki könnyen tudná.
Ajánlások
Az ilyen típusú intézkedések elkerülése érdekében sem A Sysadmin-nek vagy az SW-fejlesztőnek biztosítania kell, hogy a különféle rendszerek vagy webhelyek mappái és fájljai megfelelő és szükséges engedélyekkel és felhasználókkal rendelkezzenek a jövőbeni biztonsági és adatvédelmi kérdések elkerülése érdekében.
Az engedély szintjén a következő 3 parancs hajtható végre egy telepített rendszer vagy webhely engedélyeinek és felhasználóinak normál helyreállításához.Más szóval, állítsa a 755 értéket az összes könyvtárra, a 644 értéket pedig a fájlokra.
Mindig ne felejtsd el végrehajtani őket a Rendszer vagy a Webhely mappában, mivel ha egy magasabb mappában (könyvtárban) hajtják végre őket, például a kiszolgáló gyökérkönyvtárában, akkor a parancsparancsok rekurzívan módosítják a Szerver összes engedélyét, így valószínűleg nem működnek.
Példák
Könyvtárak és fájlok engedélyei
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
y
chmod 777 -R .
o
chmod 777 -R /var/www/sistema-web
Ha a rendszer vagy a weboldal mappáján (könyvtárán) kívül tartózkodik.
Rendszer- vagy webhelyfelhasználók
chown www-data:www-data -R .
o
chown www-data:www-data -R /var/www/sistema-web
Ha a rendszer vagy a weboldal mappáján (könyvtárán) kívül tartózkodik. A felhasználói www-adatokat pedig csak példaként használják, mivel az Apache2 használatát tekintve a leginkább használt vagy megfelelő.
Miután elvégezték az engedélyek módosítását, folytathatja azoknak a könyvtáraknak és fájloknak a jogosultságait, amelyeknek manuálisan külön engedélyekkel kell rendelkeznie. És ha szükséges a szükséges felhasználók tulajdonosainak megváltoztatása is. Ezért ezen a ponton mind a Sysadmin-nek, mind az SW-fejlesztőknek meg kell állapodniuk arról, hogy a Rendszer vagy Webhely struktúra egyes mappáihoz és fájljaihoz mi szükséges.
Következtetés
A Linux vagy UNIX operációs rendszerek fájljaira és mappáira vonatkozó engedélyek kezelése az egyik nagy előnye és előnye, mivel ezek lehetővé teszik a fájlok és mappák hozzáférésének, kiadásának és végrehajtásának különböző szintjeinek jobb, pontos és biztonságos ellenőrzését.
És még sok más, ha a webkiszolgálók szintjéről van szó, vagyis arról, hogy hol találhatók a szervezet rendszerei, illetve egy szervezet belső és külső webhelyei, mivel az adatvédelem, a biztonság és a funkcionalitás közötti legjobb egyensúly elérése érdekében kiemelt fontosságú tudni, hogy milyen engedélyeket kell rendelni az egyes könyvtárakhoz vagy fájlokhoz.
Jó reggelt hogy vagy?
A linuxban dappolok, van egy alkalmazásom, amely fájlokat tud importálni belőle, a felhasználó feltölti az xml fájlokat tartalmazó mappát tartalmazó .zip fájlt, miután kibontotta az adatbázisba beillesztett fájlokat. A Windows-ban nincsenek problémáim, amikor az alkalmazást átadom a linuxnak, hiányoznának bizonyos engedélyek, elvileg tesztelni mindent, amit tettem, amit ebben a cikkben mondanak, és nem szabad megtenni haha (de megváltozom, ha egyszer érvényesítheti az összes funkciót).
Az a tény, hogy a fájlok tömörítve vannak, de úgy látom, hogy csak olvasási és írási jogosultsággal töltenek le a tulajdonos számára, olvashatják a tulajdonoscsoport számára, mások engedélye nélkül. Amikor a fájlok az alkalmazást használó felhasználó tulajdonában vannak. Megértem, hogy ha nincs végrehajtási engedélye, nem tudja követni a folyamat normális folyamatát, és folytathatja az xml beillesztését az adatbázisba. Amire a kérdésem érkezik, hogyan adhatok engedélyeket azoknak a fájloknak, amelyek még nincsenek a rendszeren? A letöltött mappában (tmp) minden engedély megvan, újra dőlt módon alkalmazzák, de minden alkalommal, amikor a fájlokat a mappába töltik le, csak az említett jogosultságokkal rendelkeznek. Van-e valamilyen lehetőség arra, hogy az abban a mappában megjelenő fájlok végrehajthatók legyenek?
Remélem világos voltam, előre is nagyon köszönöm és kiváló blog
Feltételezem, hogy a / tmp vagy… / tmp mappa 755 jogosultsággal rendelkezik, de még akkor is, amikor az alkalmazást birtokló felhasználó leteszi őket, más engedélyekkel hagyja őket. Nem vagyok fejlesztő, de feltételezem, hogy az alkalmazás nyelvén vagy egy másikban tudna neki jelezni egy olyan rutint, amely végrehajtja a szükséges engedélyek parancs parancsát (bash) (chmod) és a fájlok tulajdonosát (chown). Ellenkező esetben futtathat egy szkriptet minden futó percben.