JustPaste.it

Quota

Quota ( ang. przydział ) umożliwi nam kontrolowanie maksymalnej ilośći danych przechowywanych na dysku przez użytkowników lub grupy. Dzięki niej będziesz mógł ustawićjak dużo miejsca na pliki będzie posiadał poszczególny użytkownik ftp. Konfiguracja przydziałów jest dość prosta i nie wymaga wiele wysiłku. Jedyne co trzeba zrobić to stworzyć parę plików i skonfigurować wartościdla poszczególnych użytkowników lub grup.

Tip:

Uwaga! Ze standardowym jądrem 2.4.26 oraz systemem plików reiserfs quota nie działa. Aby mimo to zainstalować quota zobacz na koniec tego rozdzału: Quota, jądro 2.4.26 i reiserfs.

Wskazówkę jak skonfigurować quota znajdziemy wpliku konfiguracyjnym systemu /etc/rc.d/rc.M. Postępując zgodnie zopisem w tym pliku oraz czytając manualemożna skonfigurować przydziały w czterech krokach.

Krok 1.

Dodajemy w pliku /etc/fstab wyrazy usrquota, grpquota do wierszy zawierającychpartycje na których chcemy uruchomić quota. Znaczenie i opis wszystkich pul w pliku/etc/fstab przedstawiłem w artykule Dodawanie kolejnego dysku HDD.

/dev/hdd1 /home ext2 default,usrquota,grpquota 0 0

Jeśli zamierzasz ograniczać zasoby w oparciu o użytkowników, a nie grupy, to dodaj tylko usrquota.

Krok 2.

Tworzymy pliki aquota.user oraz aquota.group w katalogu w którym podmontowana jest partycja. Jeśli jest to partycja / umieszczamy pliki w katalogu root /. Jeśli partycje podmontowano tak jak w przykładzie powyżej w katalogu /home, to tworzymy pliki w katalogu /home. Po ich stworzeniu zmieniamy prawa dostępu do plików na 600 ( prawo odczytu i zapisu tylko dla użytkownika root ).

# touch /aquota.user /aquota.group
# chmod 600 /aquota.user /aquota.group

Podobnie jak w kroku 1, jeśli będziesz używał ograniczenia zasobów tylko w oparciu o użytkowników to tworzysz tylko jeden plik - aquota.user.

Krok 3.

Wydajemy polecenie uaktywniające quota:

# mount -o remount /
# quotacheck -avugm

pierwsze polecenie spowoduje ponowne podmontowanie partycji / z uwzględnieniem zmian w pliku /etc/fstab.

drugie polecenie quotacheck sprawdza wykorzystanie miejsca na dysku, tworzy, naprawia pliki związane z przydziałami. Przełączniki podane jako argumenty oznaczają:

-a

sprawdź wszystkie zamontowane partycje, prócz NFS

-v

wyświetlaj na bieżąco informacje o przebiegu wykonywania

-u

sprawdź ustawienia przydziałówtylko dla partycji wymienionych w pliku /etc/mtab

-g

to samo co wyżej tylko dla grup

-m

domyślnie quotacheck zanim przystąpi dosprawdzania jak wykorzystane jest miejsce na partycji montuje ją jako tylko-do-odczytu ( ang. read-only ) w celu uzyskania najdokładniejszych wyników. Następnie po podliczeniu wykorzystywanego miejsca ponownie montuje partycje jako czytaj-pisz ( ang. read-write ). Ten parametr powoduje ze partycje nie są montowane jako read-only.

Zaleca się by po ustawieniu przydziałów zrestartować system by zapobiec uszkodzeniu systemu plików lub utracie danych.

Krok 4.

Konfigurujemy quota dla poszczególnych użytkowników i grup. Służy do tego polecenie edquota.

Konfiguracja quota dla użytkownika:

# edquota -u login_uzytkownika

Po wydaniu tego polecenia na ekranie powinieneś zobaczyć mniej więcej coś takiego:

Disk quotas for user login_uzytkownika (uid 1004):
Filesystem blocks soft hard inodes soft hard
/dev/hda3 2000 0 0 15 0 0

Zostały nam wyświetlone informacje na temat quota dla podanego użytkownika. Kolejne kolumny mają następujące znaczenie:

Filesystem

nazwa partycji.

blocks

ilość zajmowanego na partycji miejsca przez pliki użytkownika w kilobajtach. Wartość 2000 w przykładzie powyżej znaczy że pliki użytkownika na /dev/hda3 zajmująobecnie 2MB.

soft

określa maksymalną quote dla użytkownika na danej partycji w kilobajtach. Jeśli skonfigurowano okres łaski ( ang. grace period ) użytkownik może przekroczyć skonfigurowany limit. Jeśli w kolumnie tej jest wartość 0 znaczy to że przydziały są wyłączone.

hard

limit miejsca którego nie można przekroczyć pod żadnym pozorem ( w kilobajtach).Jeśli w kolumnie tej jest wartość 0 znaczy to że przydziały są wyłączone.

inode

inode to struktura danych zawierająca informacje na temat pliku ( kto jest właścicielem, jakie są prawa dostępu do pliku... itd. ). Każdy plik posiada inode identyfikowaną przez inode number ( i-number ). Ustawiając wartości soft i hard dla inode ustawiamy ile plików może posiadać użytkownik. Wartość 15 w przykładzie powyżej znaczy że użytkownik posiada obecnie 15 plików na /dev/hda3.

Aby zmienić wartości dla podanego użytkownika najpierw używamy strzałek by przemieścić kursor do pożądanego miejsca, wciskamy "x" tyle razy by skasować zmienianą wartość, wciskamy "i" i wpisujemy wartość w kilobajtach, następnie wciskamy escape. Powtarzamy proces by zmienić kolejną wartość. Gdy skończymy wciskamy ponownie escape a następnie ":wq" [enter].

Jeśli chcemy zmienić ustawienia quota dla większej ilości użytkowników najpierw konfigurujemy quota dla użytkownika, który będzie brany jako wzór. Powiedzmy że ustawiliśmy przydziały dla użytkownika login_uzytkownika z poprzedniego przykładu i teraz chcemy by inni użytkownicy mieli takie same ustawienia. Wydajemy komendę:

# edquota -p login_uzytkownika user1 user2 user3 user4

lub bardziej skomplikowaną:

# edquota -p login_uzytkownika `awk -F: '$3 > 1000 {print $1}' /etc/passwd`

Dzięki powyższej komendzie ustawimy quota dla wszystkich użytkowników w pliku /etc/passwd o ID większym niż 1000.

Wspomniany wcześniej okres łaski (ang. grace period ) ustawiamy przy pomocy tej samej komendy plus odpowiedni przełącznik. Wydajemy polecenie: edquota -t

Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hda3 7days 7days

Plik edytujemy w ten sam sposób jak plik z ustawieniami quata. W przykładzie powyżej okres łaski wynosi 7 dni. Znaczy to że użytkownik może przekroczyć soft quota tylko na siedem dni. Zaglądając do manuala dowiemy się że mamy do wyboru również inne jednostki czasu:'seconds','minutes','hours', 'days', 'weeks' oraz 'months'.

W celu zmieniany przydziałów dla grupy wydajemy komendę: edquota -g nazwa_grupy

To tyle. Teraz pozostaje poświęcenie trochę czasu na zastanowienie się ile miejsca powinniśmy przyznać konkretnym użytkownikom lub grupom.

Aby przejrzeć ustawienia przydziałów dla użytkowników i grup korzystamy z polecenia: repquota -a

# repquota -a
*** 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 -- 537408 0 0 49092 0 0
daemon -- 8 0 0 3 0 0
ftp -- 24 0 0 6 0 0
test1 -- 1024 0 0 8 0 0
test2 +- 1056 1000 0 6days 6 0 0
test12 -- 596 1000 0 5 0 0
test22 -- 536 1000 0 5 0 0
testq +- 2000 1000 0 6days 15 0 0

Widzimy tu wszystkie dane dotyczące wykorzystanego miejsca na dysku, soft quota, hard quota, okres łaski i inne.

Mimo że ustawienia przydziałów powinny być na bieżąco śledzone powinno się uruchamiać quotacheck -avug przynajmniej raz w tygodniu. Najlepszym rozwiązaniem jest dodanie jej do crontab.

# echo "# Uruchomienie quotacheck" >> /var/spool/cron/crontabs/root
# echo "0 3 * * 0 /sbin/quotacheck -avug" >> /var/spool/cron/crontabs/root

To by było na tyle jeśli chodzi o uruchamianie i konfigurowanie przydziałów.

Jeśli z jakiegoś powodu potrzebujesz wyłączyć quota a później włączyć to użyj poleceń: quotaoff i quotaon.

Quota, jądro 2.4.26 i reiserfs

Najprostszym sposobem by uruchomić przydziały gdy mamy jądro 2.4.26 i wybraliśmy system plików reiserfs jest zainstalowanie jądra 2.6.7 z katalogu testing ( ftp://ftp.slackware.com/pub/slackware/slackware-10.0/testing/packages/linux-2.6.7/ ). Dzięki temu nie będziemy musieli przeprowadzać kompilacji jądra. Z katalogu testing będziemy potrzebowali następujące pliki:

kernel-generic-2.6.7-i486-1.tgz
kernel-modules-2.6.7-i486-2.tgz

po ściągnięciu instalujemy:

# installpkg kernel-generic-2.6.7-i486-1.tgz
# installpkg kernel-modules-2.6.7-i486-2.tgz

Ponieważ obsługa reiserfs w powyższym jądrzeskompilowana jest jako moduł to musimy go dodać w trakcie uruchamiania jądra - zanim podmontujemy partycje root. Możemy to zrobić instalując initrd czyli ram-dysk ( ang. ramdrive ). Wkładamy wiec CD z Slackware do napędu i instalujemy pakiet mkinitrd-1.0.1-i486-2.tgz.

# mount /dev/cdrom
# installpkg /mnt/cdrom/slackware/a/mkinitrd-1.0.1-i486-2.tgz
# cd /boot
# mkinitrd -c -k 2.6.7 -m reiserfs

Powyższe komendy zainstalują i skonfigurują nasz ramdysk. Na koniec musimy dokonać jedną zmianę w pliku /etc/lilo.conf. W części odpowiadającej za konfiguracje Linuksa dopisujemy wiersz initrd = /boot/initrd.gz.

# Linux bootable partition config begins
image = /boot/vmlinuz
initrd = /boot/initrd.gz #A# Dodana linia
root = /dev/hda3
label = Linux
read-only # Non-UMSDOS filesystems should be mounted read-only for checking
# Linux bootable partition config ends

Dodana przez nas linia musi znajdować się zaraz pod image = /boot/vmlinuz. Teraz wystarczy ponownie uruchomić lilo komendą:

# lilo
Added Linux *
#

Jeśli nie będzie żadnych błędów to restartujemy komputer i konfigurujemy quota zgodnie z opisem na tej stronie.

 

Źródło: http://slackware.asmonet.net