Hozzászólások
Sziasztok!
az az érdekes helyzet állt elő, hogy az adott virtual host-ra engedélyeznem kell a followsymlinks -et, viszont azt be akarom korlátozni, hogy a symlinkeket hova vagy meddig kövesse, mivel azok dinamikusan vannak létrehozva és nem akarom, hogy egy véletlen hibát kihasználva valaki docroot-on kívűl hivatkozzon akármire is.
tehát kérdés az, hogy megvalósítható e a symlink követés de csak docroot alatt?
előre is köszi
- A hozzászóláshoz be kell jelentkezni
[code:1:5a0c351760]SymlinksIfOwnerMatch[/code:1:5a0c351760] direktíva amit te akarsz. Azt csinálja ami a neve. Tehát ha a mutatott cucc nem az apacs juzeréé, akkor nem megyen bele. Az ha jól értem akkor tok jo neked.
/FIXME
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Azért root az első mert az a master, az spawnolja a többieket amik születnek, kiszolgálnak, elöregednek és meghalnak jó esetben(ha belegondolsz pont kijon: egy master + 5 worker = 6). A megnevezések nem biztos yok mer ahany mpm annyi elnevezes.
A linkes dolgot nem teljesen értem mér van, de mindjárt széthekkelek egy apacst és jól megnézem mi lehet a baja. :twisted:
UPDATE:
A root folyamathoz még annyi hogy azert KELL rootkent futnia, mert ugye a 80-as privileged port, és másképp nem tudna újat nyitni(amikor child kihal és újat csinál helyette, vagy terhelés miatt újat indít). A root-os folyamat egyébként nem szolgál ki kéréseket, csak a kölykei, tehát az nem lehet gond.
Megnéztem. Azt hiszem itt egy kis félreértés van. A SymLinksIfOwnerMatch akkor engedi követni a linket, ha a link és a mutatott file tulajdonosa megegyezik. Elvileg ha a webszerver docrootjában vagy akkor minden file a www-datáé. Ha dinamikusan hozod létre a linket, akkor vagy a webszerver userével(vagy más nem root) kell futnia a létrehozó folyamatnak, vagy chown-olnod kell, különben nem fog mukodni a korlatozas. CGI-nek pl. szokása root-ként futni ha nincs explicite másnak beállítva. Mindenesetre ha passwd-hez hozzáfér, akkor az a symlink a rooté volt.
- A hozzászóláshoz be kell jelentkezni
akkor elvileg ha pl php-ből van csinálva ln -s és az www-data akkor stimmelni fog?
- A hozzászóláshoz be kell jelentkezni
A symlink nem a cel tulajdonsagait veszi at, hanem a tulajdonosa a letrehozo juzer lesz, a modmaszkja meg 777("atlatszo", tehat a link osszeeselve az eredeti file maszkjaval az eredeti bitmaszkot adja vissza). Azt viszont megmiondhatod, hogy a symlinknek ki a tulajdonosa.
Amit Te modasz az a chmod, az tenyleg a célfilet valtoztatja meg.
A chown alapbeallitason(tehat parameterek nelkul) nem dereferencel, hanem csak a linket magat allitja, csak explicite a --dereference-szel tud hozzáférni a hivatkozott állományhoz, de akor meg csak ahhoz. Könyvtárlinkekre ugyanígy, csak más az átlépés paraméter.
- A hozzászóláshoz be kell jelentkezni
jah, volt egy kis kavar, közben rájöttem...
amúgy chown symlinkfile nekem a célfile-t változtatta meg...
mindenesetre már stimmel a dolog, ha php-ben hozom létre symlink-et, akkor www-data lesz az owner és máris kóser a védelem...
amúgy ha már itt tartunk felvázolnám mihez kell, hátha van még ötlet vagy kijavítanivaló:
szóval hozzáférésvédett downloads könyvtár...
downloads -ban minden htaccess-el le van tiltva, fileok véletlenszerű névvel és kiterjesztéssel vannak benne, adatbázisban tárolva mi micsoda valójában.
user belép, akkor jogosult letölteni. ha valamelyik file letöltésre kattint, akkor egy átmeneti symlink kerül létrehozva a downloads könyvtárba normál filenévvel+egyedi azonosítószám(pl sessionból kódolva) a célfile-ra mutatva. htaccess dinamikusan módosítva, hogy ez a symlink elérhető legyen és hogy milyen ip-ről, redirect a letöltési linkre...
elején még php-n keresztül akartam áttolni a file-t, de azért nem jó, mert nagy fileok (>1G) esetén php futási idő probléma lenne...
szerintetek milyen az elképzelés?
- A hozzászóláshoz be kell jelentkezni