/pub/Linux/sunsite/system/admin/.
# 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
/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./etc/fstab
/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
quota.userquota.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
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.
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.
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)
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.
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