quota, Quota, Quota - limity przestrzeni dyskowej


Quota - limity przestrzeni dyskowej
Autor:
agresor@shl.pl
0x01 graphic



     Quota jest pakietem, który definiuje limity wykorzystania przestrzeni dyskowej. Podstawową ideą quoty jest to, że użytkownicy naszego systemu zmuszeni są do ograniczenia swoich zasobów i, co za tym idzie odebranie im ich zdolności do zabierania nieskończonej ilości pamięci dyskowej. Według naszego uznania możemy nałożyć ograniczenia na poszczególnych użytkowników czy wybrane grupy systemowe. Ograniczenia możemy nakładać na dwa sposoby: ilość i-węzłów (czyli plików) jaką może zapisać użytkownik oraz ilość bloków (w kilobajtach) jaką może zapisać użytkownik. Narzucenie takich limitów daje nam komfort przed obawą, że jeden z użytkowników wykorzysta całe dostępne miejsce na partycji, gdzie znajdują się także konta innych użytkowników, co czasami może nawet doprowadzić do błędów podczas ich logowania.

Obsługa quoty została zintegrowana już z jądrem Linuksa od wersji 1.3.8x, także z jej posiadaniem nie powinno być problemu. Jednak, aby mieć możliwość skorzystania z tego pakietu, musimy się upewnić, że jądro naszego systemu potrafi ją obsłużyć - musi lub musiało być skompilowane z zaznaczoną opcją Quota support (CONFIG_QUOTA [y]) - poprzez kompilacje jądra poleceniem "make menuconfig" lub "make xconfig" powinniśmy znaleźć i zaznaczyć menu: [x] Quota support. Teraz wystarczy skompilować oraz zainstalować oprogramowanie pozwalające zarządzać quotą. Jeśli już oprogramowanie obsługujące pakiet quoty jest zainstalowane na naszym systemie (większość dystrybucji Linuksa oferuje możliwość jego instalacji przy instalacji samego systemu) nie musimy więcej nic robić (fakt ten możemy sprawdzić np. poprzez wydanie komendy quotacheck). Jeśli pakiet oprogramowania quoty nie znajduje się na naszym systemie to wystarczy go ściągnąć oraz zainstalować. Po ściągnięciu wydajemy następujące polecenia:

gzip -dc quota-tools.tar.gz
tar -xvf quota-tools.tar
cd quota-tools
./configure
make
make install

Po spełnieniu wszystkich warunków pozwalających nam na korzystanie z mechanizmu quoty przyszedł czas na zmodyfikowanie skryptu inicjalizującego nasz system, aby sprawdzał quotę oraz włączał ją podczas startu systemu (w dystrybucji Slackware skrypt ten jest standardowo przystosowany do tej funkcji - /etc/rc.d/rc.M). Oto przykładowy skrypt, który sam przeszukuje plik /etc/fstab w celu sprawdzenia czy zostały dodane flagi sugerujące uaktywnienie mechanizmu quoty na danej partycji, następnie aktywuje limity dyskowe nałożone na daną partycję:

if fgrep quota /etc/fstab 1> /dev/null 2> /dev/null ; then

if [ -x /sbin/quotacheck ]; then

echo "Checking filesystem quotas: /sbin/quotacheck -avugM"

/sbin/quotacheck -avugM

fi

if [ -x /sbin/quotaon ]; then

echo "Activating filesystem quotas: /sbin/quotaon -avug"

/sbin/quotaon -avug

fi

fi

Główną zasadą jaką musimy przestrzegać podczas włączania quoty to, aby mechanizm ten był uaktywniany dopiero jak systemy plików odczytane z pliku /etc/fstab zostały zamontowane - w innym przypadku mechanizm quoty nie będzie działał. Dlatego skrypt ten powinien znajdować się na końcu pliku inicjalizującego system, lub po sekcji kiedy systemy plików są montowane.
Aktywowanie quoty zaczynamy od edycji pliku /etc/fstab. W zależności od tego czy chcemy nałożyć limit na poszczególnych użytkowników czy na grupę do opcji montowania danej partycji, na której mają być aktywne limity dopisujemy opcję: usrquota lub grpquota. Więc, aby możliwe było nałożenie ograniczenia przestrzeni dyskowej na katalogi domowe użytkowników, katalog /home musi znajdować się na oddzielnej partycji. Oto przykładowy wpis aktywujący limity dla poszczególnych użytkowników systemu:

/dev/hda7 /home ext2 defaults,rw,nosuid,nodev,usrquota 1 1

Oczywiście możemy dodać równocześnie opcję usrquota oraz grpquota. Teraz wystarczy stworzyć plik z danymi o quocie. W zależności od flag jakie dodaliśmy do montowania danej partycji tworzymy plik quota.user - w przypadku umieszczenia flagi usrquota lub quota.group - w przypadku umieszczenia flagi grpquota. Jeśli dodaliśmy obydwie flagi tworzymy dwa wymienione pliki. Pliki te powinny należeć do administratora (root) - tylko on powinien posiadać możliwość ich zapisu i odczytu oraz powinny one znajdować się w podstawowym katalogu na partycji, którą chcemy objąć quotą. Czyli w przypadku partycji /home wydajemy następujące polecenia:

touch /home/quota.user
touch /home/quota.group
chmod 600 /home/quota.*

Po tak wykonanych zabiegach wykonujemy restart systemu w celu wprowadzenia zmian jakich dokonaliśmy. Teraz jesteśmy gotowi, aby przypisać limity użytkownikom. W celu ograniczenia wielkości przestrzeni dyskowej dla np. jednego użytkownika o loginie agresor wydajemy polecenie: "edquota -u agresor". W tym momencie w oknie edytora widzimy informacje o całkowitej liczbie aktualnie używanych przez użytkownika bloków (w kilobajtach) oraz aktualnej liczby plików jaką użytkownik posiada na dysku (inodes):

/dev/hda7: blocks in use: 5027, limits (soft = 0, hard = 0)

inodes in use: 27, limits (soft = 0, hard = 0)

Limity wielkości bloków oraz ilości plików nadajemy poprzez modyfikacje ich początkowych wartości. Istnieją dwa rodzaje ograniczeń: pierwszy to soft - jest to limit, który określa maksymalną objętość dysku jaką może wykorzystać użytkownik - limit ten może być przekroczony jeśli aktywna jest opcja grace period - czyli opcja, która określa czas przez który użytkownik może nadal zapisywać dane w stanie przekroczenia limitu. Drugim rodzajem jest hard (działa jedynie przy ustawieniu grace period) - określa absolutny limit na dysku, którego dany użytkownik nie może przekroczyć. Na przykład chcemy nałożyć limity dyskowe, które będą pozwalały użytkownikowi zapisać dane o objętości 5 MB (5120 KB) oraz umożliwiały posiadanie 500 plików:

/dev/hda7: blocks in use: 5027, limits (soft = 5120, hard = 0)

inodes in use: 27, limits (soft = 500, hard = 0)

Standardowo grace period nie jest aktywne (czyli ustawione na 0), dlatego limitu (soft), który ustaliliśmy nie da się przekroczyć. Aby ukazać działanie opcji grace period stwórzmy limit pozwalający użytkownikowi zapisać dane o objętości 5 MB, posiadać 500 plików, lecz tylko przez 5 dni będzie on mógł posiadać oraz zapisywać dane o objętości 7 MB (7168 KB) oraz posiadać 1000 plików:

/dev/hda7: blocks in use: 5027, limits (soft = 5120, hard = 7168)

inodes in use: 27, limits (soft = 500, hard = 1000)

Następnie wydajemy polecenie: "edquota -t" w celu określenia długości czasu, w którym będzie możliwy zapis danych przez użytkownika po przekroczeniu soft limitu:

Time units may be: days, hours, minutes, or seconds

Grace period before enforcing soft limits for users:

/dev/hda7: block grace period: 5 days, file grace period: 5 days

Takie ustawienie po przekroczeniu użytkownika 5 MB spowoduje, automatyczne uaktywnienie się hard limitu pozwalającego mu zapisać tylko i wyłącznie 7 MB oraz ograniczy jego przekroczenie limitu do 5 dni. Po 5 dniach użytkownik nie będzie w stanie zapisywać żadnych dodatkowych danych dopóki nie wróci do stanu określonego przez soft limit czyli mniejszego lub równego 5 MB. Podobnie ustawiamy quotę dla całej grupy z tą różnicą, że limity będą się tyczyły nie jednego użytkownika lecz wszystkich, którzy należą do danej grupy. W tym celu wydajemy polecenie: "edquota -g grupa, a jeśli chcemy zobaczyć wykaz wszystkich ustawień quoty wydajemy polecenie: "repquota -a".

Bonus:

Jeśli chcemy, aby użytkownik np. firedoll posiadał takie same ustawienia quoty jak użytkownik agresor to wystarczy, że wydamy polecenie: "edquota -p agresor firedoll". Dodatkowo możemy spowodować, by quota była uaktualniana np. co tydzień, a nie co restart systemu poprzez dodanie następującej lini do crontaba superużytkownika root (polecenie: "crontab -e"):

30 6 * * 0 /sbin/quotacheck -avugm

Więcej informacji:

Strona manualna dla polecenia quotacheck (man quotacheck)
Strona manualna dla polecenia edquota (man edquota)
Quota mini-HOWTO - /usr/doc/Linux-mini-HOWTOs/Quota



Wyszukiwarka

Podobne podstrony:
jak zorganizować naszą przestrzeń dyskową, Do Systemu, Instrukcje instalacji
quota, !!!Uczelnia, wsti, materialy, II SEM, systemy operacyjne linux
quota, Co to quota, Co to quota
quota, !!!Uczelnia, wsti, materialy, II SEM, systemy operacyjne linux
POSTFIX COURIER IMAP MYSQL QUOTA SASL
Przestępczość
Przestrzenie 3D
19 Mikroinżynieria przestrzenna procesy technologiczne,
5 Strategia Rozwoju przestrzennego Polskii
Czynności kontrolno rozpoznawcze w zakresie nadzoru nad przestrzeganiem przepisów
Urządzenia i instalacje elektryczne w przestrzeniach zagrożonych wybuchem
Przestrzeń turystyczna
INF 6 PRZESTEPSTWA

więcej podobnych podstron