Ако имате желание да конфигурирате потребителска квота предполага се, че имате инсталиран Debian 10 сървър с не root потребител и активиран sudo както е по подразбиране след инсталацията му.
sudo apt install quota
За да активираме квоти в Линукс файлова система, трябва да я монтираме с определени опции, свързани с квотите. Правим това чрез актуализиране на записа на файловата система във конфигурационния файл /etc/fstab.
sudo vim /etc/fstab
UUID=06b2aae3-b525-4a4c-9549-0fc6045bd08e / ext4 errors=remount-ro 0 1
Редактираме реда, сочещ към главната файлова система, като добавим опциите.
UUID=06b2aae3-b525-4a4c-9549-0fc6045bd08e / ext4 errors=remount-ro,usrquota,grpquota 0 1
Презареждаме файловата система, за да влязат в сила новите опции:
sudo mount -o remount /
Можем да проверим дали новите опции са били използвани за монтиране на файловата система, като погледнем файла /proc/mounts. Тук използваме grep, за да покажем само записа на коренната файлова система в този файл:
cat /proc/mounts | grep ' / '
Трябва да получим подобен отговор.
/dev/sda1 / ext4 rw,relatime,quota,usrquota,grpquota,errors=remount-ro,data=ordered 0 0
Преди най накрая да включим квотната система, трябва ръчно да стартираме тази командата веднъж:
sudo quotacheck -ugm /
Сега сме готови да включим квотната система:
sudo quotaon -v /
терминала ми показа следния изход при което става ясно, че вече имаме активирана квота на нашия сървър.
/dev/sda1 [/]: group quotas turned on
/dev/sda1 [/]: user quotas turned on
Използваме командата edquota за редактиране на квоти. Нека да редактираме примерната ни квота на потребителя samyil
sudo edquota -u samyil
Опцията -u указва, че това е потребителска квота, която ще редактираме. Ако вместо това искате да редактирате квотата на групата, използвайте опцията -g на нейно място.
edquota ще отвори файл в текстовия редактор по подразбиране, подобно на това как crontab -e отваря временен файл, който можете да редактирате. Файлът ще изглежда подобно на този:
Disk quotas for user samyil (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/vda1 24 0 0 7 0 0
Всеки тип квота ви позволява да зададете както мек, така и твърд лимит. Когато потребителят надвиши мекия лимит, той е над квотата, но не прекъсва веднага записа а пише докато не завърши файла. Твърдият лимит е по-малко прощаващ: цялото създаване на нови блокове или inodes се спира веднага, когато натиснете указания твърд лимит. Системата ще се държи така, сякаш дискът е напълно без място: записът ще се провали, временните файлове няма да бъдат създадени и потребителят ще започне да вижда предупреждения и грешки.
Disk quotas for user samyil (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sda1 24 10000M 100001M 7 0 0
можем да проверим това с командата:
sudo quota -vs samyil
Има още един начин за конфигуриране на потребителска квота и това е setquota. За разлика от edquota, setquota ще актуализира информацията за квотите на нашия потребител в една команда, без интерактивна стъпка за редактиране. Ще посочим потребителското име и меките и твърди граници за квоти, базирани на блок и инод, и накрая файловата система, която да приложи квотата към:
sudo setquota -u samyil 10000M 100001M 0 0 /
За да генерирате отчет за текущото използване на квотите за всички потребители в определена файлова система, използвайте командата repquota:
sudo repquota -s /
*** Report for user quotas on device /dev/сda1
Block grace time: 7days; Inode grace time: 7days
Space limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 981M 0K 0K 35234 0 0
nobody -- 7664K 0K 0K 3 0 0
ntp -- 12K 0K 0K 3 0 0
_apt -- 8K 0K 0K 2 0 0
debian -- 16K 0K 0K 4 0 0
samyil -- 24K 10000M 100001M 7 0 0
samba quota
Инсталация на samba
sudo apt-get install samba
Конфигурационен файл.
sudo nano /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = NAS
security = user
map to guest = bad user
dns proxy = no
[samyil]
path = /home/samyil
valid users = samyil
guest ok = no
writable = yes
browsable = yes
Да създадем на samba парола за потребителя
sudo smbpasswd -a samyil
New SMB password: **********
Retype new SMB password: **********
Added user samyil.
И последно да рестартираме samba за да влязат промените в сила.
sudo systemctl restart smbd.service
Винаги съм си мислел, че квотата е едно от най трудните неща в Линукс, но по начина по който го показвате се оказва, че не е чак толкова сложно . .:)