Quota - ograniczenia dyskowe.
Jeżeli udało nam się skonfigurować i uruchomić Sambę koniecznym zabiegiem
będzie ograniczenie udostępnianej przestrzeni dyskowej.
Do tego celu służy narzędzie Quota.
Znowu możemy skorzystać z instalacji pakietowej lub instalując ze źródła.
Ja skorzystałem z poldka:
# poldek
> install quota
Kilka słów o samej Quocie.
Aby móc skorzystać z ograniczeń dyskowych musimy mieć jądro skompilowane z opcją obsługi Quoty.
W jądrze - gałąź:
File system ->
Quota suport
Jak przekompilować jądro możecie się dowiedzieć z punktu 4.
Quota ogranicza nam dysk na dwa sposoby:
- poprzez ilość bajtów
- poprze ilość plików
Uruchamianie Quoty.
Aby nasze ograniczenia dyskowe zadziałały napiszemy sobie mały skrypt, który będzie sprawdzał i uruchamiał Quotę
-----------------------------------------------------------------------------------------
#!/bin/sh
PATH="$PATH"
# Plik startowy ograniczen dyskowych
if [ -x /sbin/quotacheck ]
then
echo "Sprawdzam quote. Moze potrwac chwilke ...:)"
/sbin/quotacheck -avug
echo " Done."
else
echo "Nie masz zainstalowanej quoty lub brak pliku"
fi
/sbin/quotaon -avug
else
echo "Nie mozna wlaczyc ograniczen dyskowych"
fi
-----------------------------------------------------------------------------------------
Jeżeli komuś się nie chce pisać - skrypcik:
[Bardzo ważną zasadą jest, aby skrypt inicjujący Quotę był uruchamiany po wykonaniu wszystkich poleceń montujących dyski i partycje!!!]
Dodajemy ten skrypt np. do pliku /etc/rc.d//rc.local, aby Quota uruchamiała się podczas startu systemu.
System plików.
Kolejną rzeczą jaką musimy zrobić to dodanie Quoty do systemów plików na naszym dysku.
Edytujemy plik /etc/ftsab i dopisujemy:
- ograniczenia dla userów (usrquota)
/dev/hda3 /home ext2 defaults,usrquota 1 1
- ograniczenia dla grupy (grpquota)
/dev/hda3 /home ext2 defaults,grpquota 1 1
- może też być dla jednych i drugich
/dev/hda3 /home ext2 defaults,usrquota,grpquota 1 1
Pliki konfiguracyjne Quoty.
Żeby nasze ograniczenia zadziałały musimy stworzyć w katalogu głównym partycji dwa pliki:
- quota.user, quota.group
Wydajemy polecenia:
# touch /home/quota.user /home/quota.group
Nadajemy odpowiednie prawa (jako root):
# chmod 600 quota.user quota.group
Jak to zwykle bywa przychodzi czas na restart systemu
# reboot
Po restarcie system zaczął mi wywalać takie błędy:
Sprawdzam quote. Moze potrwac chwilke ...:)
quotacheck: Quota for users is enabled on mountpoint /home so quotacheck might damage the file.
Please turn quotas off or use -f to force checking.
Done.
Wlaczam ograniczenia dyskowe
quotaon: using /home/aquota.group on /dev/hda3 [/home]: Device or resource busy
quotaon: using /home/aquota.user on /dev/hda3 [/home]: Device or resource busy
Okazało się, że przy instalacji pakietu Quota zostały automatycznie dodane wpisy (odpowiedzialne za uruchamianie)
do pliku /etc/rc.d/rc.sysinit. Uruchamiając nasz skrypt uruchamialiśmy jeszcze raz Quotę.
„Zaciskanie pasa”
Pozostało nam jeszcze ustawić limity dyskowe. Służy do tego polecenie edquota
Program ten uruchamia nam standardowy edytor tekstowy (pewno „vi” ), który jest przypisany do zmiennej EDITOR.
Jeżeli nie lubimy „vi” to wystarczy wydać polecenie:
# export EDITOR=/usr/sbin/mcedit
I już będzie uruchamiany edytor mcedit (jeżeli go w ogóle mamy).
Chcemy np. nadać ograniczenia dla grupy samba wydajemy polecenie:
# edquota -g samba
O to wynik działania polecenia:
Disk quotas for group samba (gid 1002)
File system blocks soft hard indoes soft hard
/dev/hda3 389668 500000 550000 44 50 60
Kilka wyjaśnień:
file system - system plików
blocks - miejsce zajmowane obecnie przez grupę (użytkownika) w bajtach
indos - liczba plików którą posiada grupa (użytkownik)
soft - jest to "pomarańczowe światło" dla grupy (użytkownika) ostrzegające go, że została przekroczona granica wyznaczonego limitu.
Ale i tak powyżej granicy ustalonej przez 'soft ' grupa (użytkownik) może swobodnie jeszcze umieszczać swoje dane
hard - to granica, której system nie pozwoli grupie (użytkownikowi) przekroczyć w żaden sposób i kiedykolwiek
To samo możemy zrobić dla danego użytkownika:
# edquota -u nazwa_użytkwonika
Pozostało jeszcze ustawienie grace period
Grace period - jest to okres (domyślnie 7 dni) przez jaki użytkownik, może pozostać powyżej granicy `soft'.
Jeśli upłynie 'grace period' a user (grupa) pozostaje powyżej granicy 'soft ' to limit ten zamienia się w 'hard' i nie można juz alokować więcej danych.
Aby ustawić grace period wydajemy polecenie:
# edqouta -t
Grace period before enforcing soft limit users:
Time units may be: days, hours, minutes, or seconds
File system Block grace period Incode grace period
/dev/hda3 7days 7days
[możemy ustawić limit czasowy dla danej partycji - jeżeli mamy na niej załączona quote]
Widomości uzupełniające
Aby wyłączyć Quotę wystarczy wydać polecenie:
# quotaoff -avug
Często się zdarza, że takie same limity ma mieć kilku innych użytkowników.
W tej sytuacji wystarczy ustalić limity dla jednego z nich a dla reszty wystarczy skopiować je z wzorcowego użytkownika:
# edquota -p jurek josh gosc
czyli użytkownik josh, gosc będzie miał takie same limity jak jurek.
Użytkownik może sprawdzać własną quote poleceniem:
# quota
[użytkownik sprawdza tylko swoją quote!!!]
Admin sprawdzi innym quote poleceniem:
# quota -u nazwa_uzytkownika
# quota -g nazwa_grupy
[Jeżeli wywołamy z opcją -s wielkość limitów będzie podana w MB - więcej opcji - man ]
Ciekawym i pożytecznym poleceniem jest repquota.
Podaje sumaryczną ilość miejsca zajmowanego przez danego użytkownika (grupę) na partycji,
na której jest załączona quota.
# repquota -auv -dla usera
# repquota -agv -dla grupy
*** Report for user quotas on device /dev/hda3
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 116 0 0 14 0 0
samba -- 389668 0 0 44 0 0
jurek -- 5788 0 0 2 0 0
Jak sprawdzić czy, aby na pewno działają nasze ograniczenia dyskowe ?
Jeżeli mamy postawioną Sambę, która współpracuje z jakimś windowsem w sieci przez otoczenie sieciowe
przegrać trochę danych (więcej niż nasze limity).
Oczywiście Samba musi być odpowiednio skonfigurowana! (domyślna grupa itd. - patrz wyżej „Samba”)