Sziasztok!
Egy olyan kérdésem volna, hogy apache2-ben tudok e quotát létrehozni, mivel a felhasználók egy oldalon keresztül férhetnek egy feltöltő scripthez, amivel tudják a fájljaikat feltölteni, viszont szeretném korlátozni a méretét annak a helynek ahová a fájlokat feltöltik, tehát a problémám az, hogy nem férnek hozzá ftp-n keresztül, csak is webes bejelentkező felületen egy adott felhasználó kap egy feltöltési lehetőséget egy adott könyvtárhoz weben keresztül és annak a könyvtárnak a méretét szeretném korlátozni! Ezt hogy lehetne megoldani? Van esetleg erre valami ötletetek?
- 1653 megtekintés
Hozzászólások
Az az oldal végez beléptetést? Milyen feltöltö az?
Ha pl kér felhasználónevet, jelszót, és ftp-n kapcsolódik a szerverhez, akkor ha mindenki a saját home-jába töltögeti a fájlt, akkor a home-okra tudsz quota-t állítani.
Rondább megoldás, de írhatsz egy scriptet-is, ami idönként lefut, összeszámolja a user fájljainak összméretét, és ha több mint kellene, nem enged további fájlt feltölteni.
Vagy a php-s max upload file size -ra gondolsz? Azaz ami a php által maximálisan kezelt fájlméretet maximalizálja?
Több megoldás van kérdés az, hogy a jelenlegi rendszered melyiket tudja legegyszerübben "fogadni".
- A hozzászóláshoz be kell jelentkezni
Feltöltésnél csekk?
<?
$meret = exec("du -sc ".$dir." | grep összes | awk {'print $1'} ");
?>
- A hozzászóláshoz be kell jelentkezni
Rendszer parancsot nem igazán szeretnék oldalon keresztül küldeni!
- A hozzászóláshoz be kell jelentkezni
Miért?
1 változó van az exec-ben a: $dir
$dir = str_replace($dir, "/csak/itt/".$dir."", $dir);
- A hozzászóláshoz be kell jelentkezni
Hm csak keresztkérdés, de ez egy ilyen input ellen hogy véd hogy:
" | rm -rf akarmi " ?
Mert szerintem sehogy? :)
Nem kötekedés, csak érdeklődés :), bár jó 5 éve hozzá se szagoltam a phphez.
- A hozzászóláshoz be kell jelentkezni
(www-data vs. root)
jogos amúgy.
$str = str_replace (" | ", "", $str);
Igazából az ilyen jellegű adatok ellenőrzésére érdemes írni egy függvényt.
- A hozzászóláshoz be kell jelentkezni
Nem trivialis a dolog. Elsore nekem csak a filerendszer szintu quota ugrik be erre. Ennel az a baj, hogy egy egesz particiora tudsz adott usernek beallitani egy erteket. Alapbol a apache es a php pedig www-data-val megy az osszes oldal az osszes konyvtarbol. Megoldas lehet pl, ha fastcgi-vel minden webes konyvtarbol kulon userrel megy az apache, akkor tudod szukiteni a usert a konytarhoz es quotazni oket kulon.
De hatha van valakinek jobb otlete..
- A hozzászóláshoz be kell jelentkezni
Nincs FTP feltöltésre lehetőség csak webes felületen egy adott könyvtárba tudnak tölteni! és én annak az adott könyvtárnak a méretét szeretném korlátozni, nem kell akkor felhasználókra gondolni, csak simán van egy oldal amivel lehet feltölteni egy adott könyvtárba és annak a könyvtárnak a méretére gondoltam!
- A hozzászóláshoz be kell jelentkezni
Akkor arra az egy könyvtárra állts be quota-t, aztán az apache majd dob egy hibát, hogy nem tudott már oda írni, mert elérte a könyvtár mérete a maximumot.
Vagy írj egy scriptet ami mondjuk elhelyez egy változót egy mysql táblában, vagy egy fájlban, amit a php oldal ellenöriz, és ha az értéke x, akkor nem enged feltölteni.
Vagy szimplán letiltja a feltöltési oldalt és más szöveget rak ki helyette.
Jobb tippem nincs.
- A hozzászóláshoz be kell jelentkezni
Egy könyvtárra hogyan állítok quotát?!
- A hozzászóláshoz be kell jelentkezni
Pl "virtuális" meghajtóval. Készítesz egy véges méretü image-t amit felcsatolsz. Ennek mérete lesz alapban a quota, de megoldható dev-ként is.
pl:
http://www.schmut.com/cheat-sheets/linux-directory-quota
http://souptonuts.sourceforge.net/quota_tutorial.html
Egyébként google :)
- A hozzászóláshoz be kell jelentkezni
Azért kérdeztem mert nem igazán találtam normális leírást!
Viszont ha törlöm a könyvtárat hogy tudom visszaállítani eredetibe a rendszert?! csak simán unmountolom?
- A hozzászóláshoz be kell jelentkezni
Tehát ha jól értelmezem akkor így lehet egy image fájlt csinálni, hogy
dd if=/dev/sda1 of=/mnt/quota.img bs=1024 count=100000
AZ /mnt/ könyvtár lehet bármi más is?! és a méret korlát meg a count értékével változtatható?
- A hozzászóláshoz be kell jelentkezni
De miert az sda1 tartalmabol akarod a szemetet belerakni, mikor mindket leirasban a /dev/zero van? Mondjuk a gyakorlatban mindegy, mert utana ugy is kell fajlrendszert tegyel ra, csak ez igy ronda. A /mnt nyilvan barmi lehet.
Lehet, nem erted a tisztan a lepesek, kis magyarazat:
1. a dd-vel csinal egy .img filet nullakbol (mert ez a legkezenfekvobb), count a blokkok darabszama, tehat a meret bs X count byte lesz
2. ext filerendszert letrehoz az image fileon
3. bemountolja loop-kent az image file-t egy konytar ala, ez lesz nalad amibol az apache kiszolgal, maga a fizikai .img valahol mashol kell, hogy legyen, akar a /mnt pl.
Ennek a mondszernek az egy hatranya, hogy valtoztatni a mereten eleg maceras, ha egyszer megcsinaltad, at kell gondolni az elejen jol, mekkora kell.
- A hozzászóláshoz be kell jelentkezni
Mivel scsi vinyón fut maga a rendszer, ezért az sd1 csak egy külső felcsatolt wincsi szóval nem volna gond vele betyárkodni
- A hozzászóláshoz be kell jelentkezni
ezzel az erovel a scsi vinyot is megadhatod neki az if -hez...
kicsit elbeszelunk egymas mellett
- A hozzászóláshoz be kell jelentkezni
Szerintem ez a legkisebb probléma, hogy melyik vincsit használom
- A hozzászóláshoz be kell jelentkezni
Ugyebár azért volna érdekes a dolog mert csak egy felhasználó van a gépen és azon belül kéne a könyvtárak méretét korlátozni amibe lehet feltölteni!
- A hozzászóláshoz be kell jelentkezni
Adatbázisban vagy simán fájlban tárolod a könyvtár adatait, hogy ki mennyit tölthet fel és, hogy jelenleg mennyi van benne a könyvtárban. Aztán feltöltésnél csak akkor kerül be a fájl a könyvtárba, ha a fájl szerint van hely.
- A hozzászóláshoz be kell jelentkezni
Tyűű micsoda ötlet!:D Egyszerű és nagyszerű!:) Szerintem ez a legegyszerűbb mint egy virtuális fájlrendszert csinálni és akkor nem firkálok semmit sehová és a méret változtatás is megoldva egyszerűen!:)
Köszönöm!
- A hozzászóláshoz be kell jelentkezni