Membatasi Kapasitas Pada Setiap User atau Group dengan Quota

Dapatkan update terbaru Linuxku.com di kanal Telegram https://telegram.me/linuxkudotcom.

Kadang kala ketika kita menyewa suatu VPS atau Dedicated Hosting, satu server digunakan oleh banyak user, dan sudah barang tentu setiap user dalam server tersebut memiliki kebutuhan yang berbeda-beda dari segi kapasitas harddisk.

Quota adalah salah satu utilitas berbasis CLI yang mudah dan powerful untuk kebutuhan dalam pembagian space pada setiap user atau user yang berada dalam group tersebut.

Instalasi Quota

Ubuntu/Debian

$ sudo apt-get install quota

Centos, Fedora 20 hingga ke bawah

$ sudo yum install quota

Fedora 21 hingga ke atas

$ sudo dnf install quota

Kemudian atur fstab pada partisi root ( / ):

$ sudo nano /etc/fstab

Masukan usrquota untuk tiap user atau grpquota untuk grup. Anda bisa memilih salah satu di antara keduanya, boleh pula keduanya dimasukan, contoh:

UUID=21d79caa-847e-4f85-b61f-49dde896d7b8 /               ext4    errors=remount-ro,usrquota  0 1

Lalu kemudian lakukan remount:
$ sudo mount -o remount /
Dan buat quotanya:
$ sudo quotacheck -cum /

Keterangan:

  • Parameter c mengindentifikasikan untuk membuat berkas baru dan akan menimpa berkas yang lama jika ada.
  • Parameter u mengidentifikasikan bahwa jika ada user baru hasus dibuatkan index file. Atau jika Anda menggunakan metode grup maka gunakan parameter g untuk membuat group index file.
  • Parameter m menidentifikasikan bahwa tidak boleh menjalankan partisi yang di mount dengan metode read-only karena nantinya partisi dibutuhkan untuk mengenerate perbedaan index file.

Untuk mengaktifkan quota:

$ sudo quotaon /

Untuk mematikannya:

$ sudo quotaoff

Implementasi Quota

Sekarang kita coba praktek misalnya ada dua orang pengguna, satu bernama Udin yang satu bernama Jamal. Si Udin mendapatkan jatah kuota sebesar 10 GB, sedangkan Jamal 15 GB.

Pertama-tama buat dahulu usernya:

$ sudo useradd -m -g users -s /bin/bash udin
$ sudo useradd -m -g users -s /bin/bash jamal

Kemudian untuk memberikan kuota pada setiap user tersebut lakukan perintah berikut:

$ sudo edquota udin

Keterangan:

  • Blocks berarti kuota yang dihitung berdasarkan ukuran (size) isi dari storage.
  • Inodes berarti kuota yang dihitung berdasarkan banyaknya file dan directory dalam suatu storage.
  • Soft berarti membatasi maksimal dengan sedikit toleransi, sedangkan hard berati tanpa toleransi dan benar-benar maksimal. Maksudnya begini, Anda membuat soft block 10000 dan hard block 10240 itu artinya jika Anda mengunggah berkas lebih dari 10 MB pas tidak akan bisa, sedangkan sekitar di 10000 Byte berati sekitar 9,76 Anda masih bisa mengunggah.

Jadi untuk Udin, karena masimal 10 GB maka:

Disk quotas for user udin (uid 1003):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sda1                        24     10000000    10485760          6        0        0

Saya tidak membatasi berdasarkan inodes jadi baik soft/hard inodes saya bernilai nol yang berarti unlimited.

Lakukan pula pada si Jamal, perhitungannya:

  • soft block, 15 x 1000 x 1000 = 15000000
  • hard block, 15 x 1024 x 1024 =  15728640
  • inodes baik soft ataupun hard diberi nilai nol.

Untuk mengecek kuota setiap user lakukan cara berikut:

$ sudo quota udin

Hasilnya:

Untuk membuat laporan kuota:

$ sudo repquota -a

Semoga bermanfaat.

Yakin Ngga Mau Diskusi ?

Yuk diskusi cerdas. Gunakan nama asli agar komentar Anda disetujui.