# Jak używać Quoty na Linux-ie.

## Autor: Albert M.C. Tam, bertie@scn.org
8 Sierpnia 1997
Wersja polska: Bartosz Maruszewski B.Maruszewski@jtz.org.pl.
v1.2, 27 Listopada 1997

Dokument ten jest chroniony prawami autorskimi Alberta M. C. Tama (bertie@scn.org). Dozwolone jest użycie, kopiowanie i dystrybuowanie tego dokumentu do celów niekomercyjnych, zakładając, że we wszystkich kopiach pojawi się nazwisko autora oraz ta wzmianka o prawach autorskich; oraz że dokument ten nie jest modyfikowany. Dokument ten jest dystrybuowany w nadziei, że będzie on użyteczny, ale BEZ ŻADNEJ GWARANCJI, ani wyrażonej ani wynikającej. Autor czynił jak największy wysiłek, żeby informacje zawarte w tym dokumencie były poprawne i NIE BIERZE ODPOWIEDZIALNOŚCI za błędy, czy zniszczenia powstałe na skutek użycia zawartych tu informacji. Tłumacz także NIE BIERZE ŻADNEJ ODPOWIEDZIALNOŚCI. Dokument ten opisuje jak uruchomić Quotę systemu plików na Linux-ie, jak i różne polecenia zawarte w dystrybucji pakietu. Przeznaczony jest on dla użytkowników jądra w wersji 2.x (przetestowano na 2.0.7). Użytkownikom ze starszymi wersjami zaleca się uaktualnienie. Jeśli znajdziesz jakieś błędy, albo sądzisz, że czegoś brakuje, czy po prostu masz jakiś komentarz odnośnie tego co napisałem to pisz śmiało na mój adres. Nowsza wersja zawiera uaktualnione wskazania na katalog zawierający jądra na ftp.icm.edu.pl. Dokument ten napisany został w standardzie ISO-8859-2. Wersja oryginalna znajduje się pod adresem ftp.icm.edu.pl.

## 1. Co to jest Quota?

Jest to pakiet umożliwiający limitowanie zużycia dysków na dwa sposoby: ilość węzłów jaką można przydzielić użytkownikowi; ilość bloków dysku jaką można przydzielić użytkownikowi.

Podstawową ideą Quoty jest to, że użytkownicy zmuszani 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.

## 1.1 Bieżąca wersja Quoty na Linux-a.

Obsługa Quoty została zintegrowana z jądrem od wersji 1.3.8x i jest także w wersji 2.0. Jeśli twój system nie obsługuje Quoty, to proponuje go uaktualnić.

Obecnie Quota działa tylko dla systemu plików `ext2`.

## 1.2 Wymagania Quoty na Linux-ie.

- Jądro
  Źródła jądra 2.x są dostępne z ftp.icm.edu.pl w katalogu `/pub/Linux/kernel`.
- Oprogramowanie Quota.
  Zależnie od twojej dystrybucji możesz mieć albo możesz nie mieć zainstalowanej Quoty. Źródła oprogramowania Quoty są dostępne pod adresem ftp.icm.edu.pl w katalogu `/pub/Linux/sunsite/system/admin/`.

## 2. Ustawianie Quoty na Linux-ie.

## 2.1 Konfiguracja.

1. Przekonfiguruj swoje jądro odpowiadając "y" na pytanie: Quota support (CONFIG_QUOTA) [n]
2. Skompiluj i zainstaluj oprogramowanie Quoty.
   Źródła oprogramowania Quoty są dostępne pod adresem ftp.icm.edu.pl w katalogu `/pub/Linux/sunsite/system/admin/`.
3. Zmodyfikuj skrypty inicjalizujące twój system, aby sprawdzały quotę i włączały ją podczas startu systemu. Oto przykład:

               # Sprawdź quotę i włącz ją
               if [ -x /usr/sbin/quotacheck ]
               then
                       echo "Checking quotas. This may take some time."
                       /usr/sbin/quotacheck -avug
                       echo " Done."
               fi

               if [ -x /usr/sbin/quotaon ]
               then
                       echo "Turning on quota."
                       /usr/sbin/quotaon -avug
               fi

   Złota zasada brzmi: zawsze włączaj quotę po tym jak twoje systemy plików z `/etc/fstab` zostały zamontowane, bo inaczej quota nie będzie działać. Zalecam włączanie quoty na końcu pliku inicjalizującego twój system, albo jeśli wolisz, zaraz po fragmencie kiedy twoje systemy plików są montowane.
4. Zmodyfikuj `/etc/fstab`
   Partycje, na których jeszcze nie włączyłeś quoty wyglądają mniej więcej tak:

               /dev/hda1       /       ext2    defaults        1       1
               /dev/hda2       /usr    ext2    defaults        1       1

   Aby dodać quotę do systemu plików, dodaj usrquota do czwartego pola zawierającego default: (szczegóły w `man fstab`)

               /dev/hda1       /       ext2    defaults        1       1
               /dev/hda2       /usr    ext2    defaults,usrquota       1       1

   Zamień usrquota na grpquota jeśli potrzebujesz ograniczenia dla grup.

               /dev/hda1       /       ext2    defaults        1       1
               /dev/hda2       /usr    ext2    defaults,grpquota       1       1

   A może potrzebujesz ograniczeń i dla użytkowników i dla grup?

               /dev/hda1       /       ext2    defaults        1       1
               /dev/hda2       /usr    ext2    defaults,usrquota,grpquota       1      1

5. Stwórz zapis odnośnie quoty - `quota.user`
   Plik z danymi o quocie - `quota.user`, powinien należeć do "root-a" oraz zapis i odczyt do niego powinien mieć także tylko "root". Zaloguj się jako "root". Przejdź do podstawowego katalogu na partycji, którą chcesz objąć quotą i stwórz plik `quota.user`:

               touch /partycja/quota.user
               touch /partycja/quota.group
               chmod 600 /partycja/quota.user
               chmod 600 /partycja/quota.group

6. Restart.
   Teraz zrestartuj system, żeby wprowadzić zmiany, które naniosłeś. Zauważ też, że kolejne partycje, dla których chcesz włączyć quotę wymagają tylko kroków 4, 5 i 6.

## 2.2 Przypisywanie limitów użytkownikom.

Operację tę wykonuje się poleceniem `edquota` (szczegóły `man edquota`).

Normalnie uruchomiłbym `quotacheck` z opcjami `-avug`, aby zyskać jak najaktualniejszy obraz systemu plików, przed edycją plików quoty. Jest to jednak tylko moje przyzwyczjenie a nie wymagany krok.

### Przypisywanie limitów konkretnemu użytkownikowi.

Oto przykład. Mam użytkownika, którego login to bob. Polecenie `edquota bob` uruchomi edytor vi (lub ten podany w zmiennej $EDITOR), w którym będzie można edytować limit dla użytkownika bob dla każdej partycji, na której jest włączona quota:

           Quotas for user bob:
           /dev/hda2: blocks in use: 2594, limits (soft = 5120, hard = 6400)
                    inodes in use: 356, limits (soft = 1000, hard = 1500)

"blocks in use" - jest całkowitą ilością bloków (w kilobajtach) jaką zużył dany użytkownik.
"inodes in use" - jest całkowitą liczbą plików jaką użytkownik ma na dysku.

### Przypisywanie limitów konkretnej grupie.

Teraz mam grupę games. Polecenie `edquota -g games` znowu uruchamia edytor vi, aby edytować limity dla tej grupy:

            Quotas for group games:
            /dev/hda4: blocks in use: 5799, limits (soft = 8000, hard = 10000)
                    inodes in use: 1454, limits (soft = 3000, hard = 4000)

### Przypisywanie takich samych limitów dla większej ilości użytkowników.

Aby za jednym zamachem ustawić limit dla, powiedzmy 100 użytkowników, taki sam jak dla boba, najpierw trzeba ustawić ręcznie limity dla boba, a potem wykonać polecenie:

            edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd`

zakładając, że używasz powłoki csh i że twoi użytkownicy mają numery UID zaczynające się od 500.

Dodatkowo są jeszcze trzy inne terminy, z którymi powinieneś się zapoznać: `Soft Limit, Hard Limit i Grace Period`.

- Soft Limit.
  Normalnie, soft limit określa maksymalną objętość dysku, jaką użytkownik ma przyznaną. Ale jeśli połączymy to z grace period, to soft limit określa nam granicę, po przekroczeniu której użytkownik zostaje ostrzeżony.
- Hard Limit.
  Działa to jedynie przy ustawieniu grace period. Określa to absolutny limit na dysku, którego dany użytkownik nie może przekroczyć.
- Grace Period.
  Jest to okres czasu, po jakim zacznie działać opcja soft link. Wartości tej opcji podaje się poleceniem `edquota -t`. Jednostkami czasu mogą być: sekundy, minuty, godziny, dni, tygodnie lub miesiące. Oto co zobaczysz po wydaniu polecenia `edquota -t`:

             Time units may be: days, hours, minutes, or seconds
             Grace period before enforcing soft limits for users:
             /dev/hda2: block grace period: 0 days, file grace period: 0 days

  Zmień 0 days na jakiś okres czasu, który uważasz za słuszny. Osobiście wybrałbym 7 dni albo 1 tydzień.

## 3. Różne polecenia z pakietu Quota.

## 3.1 Quotacheck

Program ten jest używany do analizowania systemu plików ze względu na bieżące zużycie i uaktulaniania zapisu w pliku `quota.user`. Zalecam uruchamianie tego programu co jakiś okres czasu poprzez crontab oraz podczas startu systemu.

## 3.2 Repquota

Program ten podaje sumaryczne wiadomości dotyczące aktualnego zużycia systemu plików. Przykładowe wyjście tego polecenia może wyglądać tak:

            # repquota -a
                                    Block limits               File limits
            User            used    soft    hard  grace    used  soft  hard  grace
            root      --  175419       0       0          14679     0     0
            bin       --   18000       0       0            735     0     0
            uucp      --     729       0       0             23     0     0
            man       --      57       0       0             10     0     0
            user1     --   13046   15360   19200            806  1500  2250
            user2     --    2838    5120    6400            377  1000  1500

## 3.3 Quotaon i Quotaoff

Pierwszy z tych dwóch programów służy do włączania quoty, a drugi do wyłączania. Właściwie oba pliki są podobne. Są wykonywane podczas startu systemu i jego zamknięcia.

## 4. Od tłumacza.

Tłumaczenie to jest chronione prawami autorskimi © Bartosza Maruszewskiego. Dozwolone jest rozprowadzanie i dystrybucja na prawach takich samych jak dokument oryginalny.

Jeśli znalazłeś jakieś rażące błędy ortograficzne, gramatyczne, składniowe, techniczne to pisz do mnie:

B.Maruszewski@jtz.org.pl

Napewno znajdziesz tu jakieś niejasne i niepolskie konstrukcje. Jeśli wpadniesz na lepszy pomysł daj mi znać.

Oficjalną stroną tłumaczeń HOWTO jest http://www.jtz.org.pl/

Aktualne wersje przetłumaczonych dokumentów znajdują się na tejże stronie. Dostępne są także poprzez anonimowe ftp pod adresem ftp.jtz.org.pl w katalogu `/pub/Linux/JTZ/`.

Przetłumaczone przeze mnie dokumenty znajdują się także na mojej stronie WWW. Są tam też odwołania do Polskiej Strony Tłumaczeniowej.

Kontakt z naszą grupą, grupą tłumaczy możesz uzyskać poprzez listę dyskusyjną jtz@ippt.gov.pl. Jeśli chcesz sie na nią zapisać, to wyślij list o treści `subscribe jtz Imię Nazwisko` na adres `majordomo@ippt.gov.pl`