Jak używać Quoty na Linux-ie. Autor: Albert M.C. Tam, bertie@scn.org 8 Sierpnia 1997 WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkiiBB..MMaarruusszzeewwsskkii@@jjttzz..oorrgg..ppll.. 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 autors­ kich; 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 paki­ etu. 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 uaktual­ nione wskazania na katalog zawierający jądra na ftp.icm.edu.pl. Doku­ ment ten napisany został w standardzie ISO-8859-2. Wersja oryginalna znajduje się pod adresem ftp.icm.edu.pl . ______________________________________________________________________ Spis treści 1. Co to jest Quota? 1.1 Bieżąca wersja Quoty na Linux-a. 1.2 Wymagania Quoty na Linux-ie. 2. Ustawianie Quoty na Linux-ie. 2.1 Konfiguracja. 2.2 Przypisywanie limitów użytkownikom. 2.2.1 Przypisywanie limitów konkretnemu użytkownikowi. 2.2.2 Przypisywanie limitów konkretnej grupie. 2.2.3 Przypisywanie takich samych limitów dla większej ilości użytkowników. 3. Różne polecenia z pakietu Quota. 3.1 Quotacheck 3.2 Repquota 3.3 Quotaon i Quotaoff 4. Od tłumacza. ______________________________________________________________________ 11.. CCoo ttoo jjeesstt QQuuoottaa?? 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. 11..11.. BBiieeżżąąccaa wweerrssjjaa QQuuoottyy nnaa LLiinnuuxx--aa.. 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. 11..22.. WWyymmaaggaanniiaa QQuuoottyy nnaa LLiinnuuxx--iiee.. ˇ 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/. 22.. UUssttaawwiiaanniiee QQuuoottyy nnaa LLiinnuuxx--iiee.. 22..11.. KKoonnffiigguurraaccjjaa.. 1. Przekonfiguruj swoje jądro odpowiadając "y" na pytanie: _Q_u_o_t_a _s_u_p_p_o_r_t _(_C_O_N_F_I_G___Q_U_O_T_A_) _[_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: zzaawwsszzee włączaj quotę ppoo ttyymm 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 _u_s_r_q_u_o_t_a do czwartego pola zawierającego _d_e_f_a_u_l_t: (szczegóły w man fstab) /dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,usrquota 1 1 Zamień _u_s_r_q_u_o_t_a na _g_r_p_q_u_o_t_a 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. 22..22.. PPrrzzyyppiissyywwaanniiee lliimmiittóóww uużżyyttkkoowwnniikkoomm.. 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. 22..22..11.. PPrrzzyyppiissyywwaanniiee lliimmiittóóww kkoonnkkrreettnneemmuu uużżyyttkkoowwnniikkoowwii.. Oto przykład. Mam użytkownika, którego login to _b_o_b. Polecenie edquota bob uruchomi edytor _v_i (lub ten podany w zmiennej _$_E_D_I_T_O_R), w którym będzie można edytować limit dla użytkownika _b_o_b 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. 22..22..22.. PPrrzzyyppiissyywwaanniiee lliimmiittóóww kkoonnkkrreettnneejj ggrruuppiiee.. Teraz mam grupę _g_a_m_e_s. 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) 22..22..33.. PPrrzzyyppiissyywwaanniiee ttaakkiicchh ssaammyycchh lliimmiittóóww ddllaa wwiięękksszzeejj iilloośśccii uużżyyttkkoowwnniikkóóww.. Aby za jednym zamachem ustawić limit dla, powiedzmy 100 użytkowników, taki sam jak dla _b_o_b_a, najpierw trzeba ustawić ręcznie limity dla _b_o_b_a, a potem wykonać polecenie: edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd` zakładając, że używasz powłoki _c_s_h i że twoi użytkownicy mają numery _U_I_D 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, _s_o_f_t _l_i_m_i_t określa maksymalną objętość dysku, jaką użytkownik ma przyznaną. Ale jeśli połączymy to z _g_r_a_c_e _p_e_r_i_o_d, to _s_o_f_t _l_i_m_i_t określa nam granicę, po przekroczeniu której użytkownik zostaje ostrzeżony. ˇ Hard Limit. Działa to jjeeddyynniiee przy ustawieniu _g_r_a_c_e _p_e_r_i_o_d. 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 _s_o_f_t _l_i_n_k. 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 _d_a_y_s na jakiś okres czasu, który uważasz za słuszny. Osobiście wybrałbym 7 dni albo 1 tydzień. 33.. RRóóżżnnee ppoolleecceenniiaa zz ppaakkiieettuu QQuuoottaa.. 33..11.. QQuuoottaacchheecckk 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 _c_r_o_n_t_a_b oraz podczas startu systemu. 33..22.. RReeppqquuoottaa 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 ______________________________________________________________________ 33..33.. QQuuoottaaoonn ii QQuuoottaaooffff 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. 44.. OOdd ttłłuummaacczzaa.. 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