Następna strona Poprzednia strona Spis treści

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.


Następna strona Poprzednia strona Spis treści