Quotad Lab

Keskkond: Virtual Box, installitud ubuntu/debian server/desktop lisatud virtuaalse kõvakettaga suusrusega 500 MB
Среда: - Virtual Box, рабочий сервер/десктоп с ubuntu/debian с добавленным дополнительным жёстким диском 500МБ

Ülesanne:

NB! Kui kopeerimisel tekib teade "No space left on device" tähendab se et teie quotade piiramine ei toimi ja partatsioon jooksis faile täis!!!

Задание:

NB! Если при копировании появилось сообщение "No space left on device", это значит что квоты не работают и весь диск заполнился до конца файлами!!!

Lahendus:

Uue ketta lisamine virtual masinale:
Добавление нового диска виртуальной машине:

Vali VirtualBox-is vajalik virtual masin -> Settings -> Storage -> Sata Controller -> + Add Hard Disk(ikoon: kettad üksteise peal)
Create New Disk -> VDI -> Dynamically allocated -> Location: Ketas2, Size: 500 MB -> Create

kontrolli: Storage -> Sata Controller-i alla peaks tekkima lisatud ketas määrangutes antud nime, tüübi ja suurusega
проверь: под Storage -> Sata Controller-i должен появиться диск с требуемыми параметрами: имя, тип и размер

Installime kasutaja ruumala piiramis programmi:
Инсталлируем программу управления пользовательским пространством:

$ apt-get install quota quotatool

Loome kasutajate jaoks uue katalogi nimega /home2
Создадим для пользователей новый домашний каталог с именем: /home2

$ mkdir /home2

Teil pidi valmis olema uus 500MB kettas /dev/sdb uue partatsiooni jaoks, kuhu paigutame piirangutega kasutajate kodukatalogid.
Ja fdisk programmiga tekitasite sinna partatsiooni /dev/sdb1 vaata kuidas teha laboris "File system lab"
Loome sellel partatsioonil faili süsteemi (mkfs - make file system)

$ mkfs.ext3 /dev/sdb1
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 523264 blocks
26163 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
64 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

Kui kõi on korras saame monteerida partatsiooni parameetriga usrquota

mount -o rw,nodev,noexec,usrquota /dev/sdb1 /home2

Monteerima ta lahti

umount /home2

Otsime üles loodud faili süsteemi UUID identifikaatori:
Находим идентификатор созданной файловой системы:

$ dumpe2fs /dev/sdb1 | grep UUID
dumpe2fs 1.41.14 (22-Dec-2010)
Filesystem UUID: 8e4317a7-b61a-4d86-9755-0bb2526f0c34

В случае примера это: 8e4317a7-b61a-4d86-9755-0bb2526f0c34

Kopeerime selle UUID numbri clipboard-i.
Avame redigeerimiseks faili /etc/fstab kus meil on kirjeldatud kõik kasutusel olevad partatsioonid
Vaata täpsemalt Introduction to fstab

Скопирусем этот номер UUID в клиппбоард.
Откроем для редакции файл /etc/fstab, где описаны все используемые разделы

$ nano /etc/fstab

Ja lisame sinna lõppu uue rea, kus kuhu UUID= välja paigutame(pastime) loodud fail süsteemi UUID identifikaatori ja järgmine väli tähendab mis katalogi me selle fs-i monteerime, edasi tuleb faili süsteemi tüüp, monteerimis parameetrid default ja usrquota ning bakupimis parameetrid 0 ja 1
И добавим в конец новую нижеприведённую строку, где требуется заменить UUID=на номер полученный предыдущей командой и скопированный в клиппбоард

UUID=8e4317a7-b61a-4d86-9755-0bb2526f0c34     /home2     ext3     rw,nodev,noexec,errors=remount-ro,usrquota,grpquota      0 1

Või saame monteerida kõik /etc/fstab olevad failisüsteemid OS-le külge(monteeritakse need mis pole momendil monteeritud):
Можем примонтировать все описанные в /etc/mtab файле разделы одной командой:

$ mount -a

NB! Kui tekib viga:
NB! Если появится ошибка:
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so

Siis vaata logifaile dmesg või kern.log
То смотри логи в файлах /var/log/mesg või /var/log/kern.log

$ tail /var/log/dmesg

Võivad olla fstab konfiguratsiooni failis vead, näiteks vähe tühikuid väljade vahel.
В файле fstab могут быть ошибки, типа мало или отсутствие пробелов между полями.

...
Dec 5 21:35:09 ubu kernel: [ 832.498938] EXT3-fs (sdb1): error: unrecognized mount option "grpquo
ta 0" or missing value
...

Kui saime filisüsteemi monteeritud, kontrollime:
Если удалось подмонтировать раздел, проверим его наличие:

$ df -h

Filesystem Size Used Avail Use% Mounted on
/dev/sda1 6.3G 3.3G 2.7G 55% /
udev 343M 4.0K 343M 1% /dev
tmpfs 140M 788K 139M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 350M 1016K 349M 1% /run/shm
/dev/sdb1 2.0G 36M 1.9G 2% /home2

Kontrollime:
Проверка:

$ quotacheck -avugm

Loome erifailid faili süsteemi juur katalogis kus hoitakse quota informatsiooni ja määrame juurdepääsu õigused:
Create the quota file ("-m" forces quotacheck to do this while the filesystem is mounted read/write, so you don't have to disrupt any services in order to do this step).

$ quotacheck -F vfsv0 -c -a -v -m
quotacheck: Scanning /dev/sdb1 [/home2] done
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Checked 4 directories and 4 files
quotacheck: Old file not found.

Lubame(aktiveerime) quota:
Активируем квоты:

$ quotaon -avug
/dev/sdb1 [/home2]: group quotas turned on
/dev/sdb1 [/home2]: user quotas turned on

Lisame uue kasutaja kelle kodu katalog asub /home2 katalogis
Добавим нового пользователя чей домашний каталог находится на (созданном)разделе в каталоге /home2

$ useradd -m -b /home2 -s /bin/bash uus

Redigeerida quotasid saab käsuga edquota -u username -f /dev/desiredpartition
kus username on kasutaja nimi ja /dev/desiredpartition on partatsioon kus on aktiveeritud quota

$ edquota -u uus -f /dev/sdb1

Nüüd saab redigeerida kasutaja uus soft ja hard quota parameetreid:
Теперь можно отредактировать параметры квот типа soft и hard для пользователя uus:

Disk quotas for user uus (uid 1002):
Filesystem   blocks soft   hard    inodes soft hard
/dev/sdb1    16     100000 150000  11     0    0

Kasutaja saab iga moment näha oma quotasid käsuga:
Пользователь в любой момент может посмотреть свои квоты командой:

# quota -v

Quota Kontroll

Logi terminalis kasutaja uus all ja hakka kopeeri tema kodu kodukatalogi faile.
Залогинтесь в терминале под пользователем uus и начните копировать в его домашний кталог файлы.

$ cp -r /usr/share/ /home2/uus

Kui kopeerimisel eraldatud ruum on lõppenud tekivad järgmised teavitused:
При правильных настройках вслучае достжения границ квоты должно появиться следующее сообщение:

...
cp: writing `/home2/uus/share/aspell....xmlä': Disk quota exceeded
cp: cannot create directory `/home2/uus/share/opencc': Disk quota exceeded
...

NB! Kui tekivad teavitused:
NB! Если появится нижеследующее сообщение

...No space left on device

See tähendab et quota ei toimi ja lõppes kõvaketta ruum.
See võib juhtuda kui quota on suurem kui kõvaketta suurus.

Это значит, что квоты не работают и свободное пространство диска закончилось.
Это может произойти так же, если квоты больше чем размер диска.
Это может произойти если вы копируете под правами пользователя неограниченного квотами(например под пользователем root) .

Quotasid saab kasutada mugavamalt webi liidesega webmin.
Seda saad installida juhendiga webmin

Quotade häälestamiseks tuleks minna menüüsse System->Quota

Lisainfo
Дополнительная информация

$ edquota -t -f /dev/sdb1

Saame lülitame kõik quotad välja

$ quotaoff -a

Või lülirada quotad ainult vajalikul partatsioonil

$ quotaon /dev/sdb1