Membatasi Penggunaan Disk user dan group Menggunakan quota
Quota adalah sebuah tool sistem administrasi yang
digunakan untuk mengelola batasan resource berupa kapasitas ruang
disk yang digunakan user. Sehingga kita memonitor dan membatasi
penggunaan disk user maupun group. Di sini user atau group dapat
dipaksakan hanya memiliki beberapa megabyite bahkan beberapa kilobyte
saja di suatu partisi yang kapasitasnya bergiga-giga. Sehingga user
tidak mengkonsumsi space disk melebihi kapasitas yang ditargetkan.
Sebelum menginstall quota, downloadlah software
quotanya. Jika anda menggunakan Linux Slackware, bisa anda dapatkan
di disk1 [cdrom]/slackware/ap/quota-3.12-i486-1.tgz. Di slackware,
instalasi quota sangat mudah dengan menggunakan “/sbin/installpkg”.
shellz %: installpkg quota-3.12-i486-1.tgz
Installing package quota-3.12-i486-1…
PACKAGE DESCRIPTION:
quota: quota (Linux disk quota utilities)
quota:
quota: An implementation of the diskquota system for the Linux operating
quota: system to keep those greedy users from gobbling up 100% of the hard
quota: drive space. Works with ext2, ext3, reiserfs, and xfs filesystems.
quota: This system is based on the Melbourne quota system by Robert Elz.
quota: Edvard Tuinder and Marco van Wieringen ported this code to Linux.
quota: Jan Kara added support for the new Linux quota format and the XFS
quota: filesystem.
quota:
Executing install script for quota-3.12-i486-1…
Installing package quota-3.12-i486-1…
PACKAGE DESCRIPTION:
quota: quota (Linux disk quota utilities)
quota:
quota: An implementation of the diskquota system for the Linux operating
quota: system to keep those greedy users from gobbling up 100% of the hard
quota: drive space. Works with ext2, ext3, reiserfs, and xfs filesystems.
quota: This system is based on the Melbourne quota system by Robert Elz.
quota: Edvard Tuinder and Marco van Wieringen ported this code to Linux.
quota: Jan Kara added support for the new Linux quota format and the XFS
quota: filesystem.
quota:
Executing install script for quota-3.12-i486-1…
Langkah-Langkah Konfigurasi
1. Memodifikasi file /etc/fstab
File /etc/fstab memuat informasi tentang mounting.
Jadi semua partisi ataupun semua device untuk media penyimpanan yang
akan dimount secara otomatis ketika booting harus dituliskan di sini.
Di dalam format penulisan untuk memount terdapat beberapa parameter
atau pilihan-pilihan seperti “defaults, rw, ro, nosuid, nodev” dll.
Untuk menghidupkan quota dalam disk, kita harus memasukkan mengikut
sertakan quota dalam parameter mount tersebut.
-> mount point untuk root di file /etc/fstab:
/dev/hda7 / ext3 defaults 1 1
/dev/hda7 / ext3 defaults 1 1
-> untuk quota user file ini dapat dimodif menjadi:
/dev/hda7 / ext3 defaults,usrquota 1 1
/dev/hda7 / ext3 defaults,usrquota 1 1
-> jika quota diberikan untuk group, maka bisa ditambahkan quota group.
/dev/hda7 / ext3 defaults,grpquota 1 1
/dev/hda7 / ext3 defaults,grpquota 1 1
-> bisa juga dijadikan satu.
/dev/hda7 / ext3 defaults,usrquota,grpquota 1 1
/dev/hda7 / ext3 defaults,usrquota,grpquota 1 1
Di sini menggunakan mount point / karena user-user
yang berada di /home saya kebetulan menggunakan partisi yang sama
dengan partisi root.
Mount file system yang sudah dimodifikasi seperti
modifikasi di atas harus diremount untuk menginformasikan kepada system
tentang modifikasi tersebut. Untuk melakukan hal ini, kita dapat
melakukan remounting dengan perintah:
190 /root$ mount -oremount /
2. Menciptakan file quota.user dan quota.group
Setelah memodifikasi file /etc/fstab, langkah
selanjutnya adalah membuat file quota.user dan quota.group yang
diletakkan di /home. Serta hak akses adalah hanya user root yang
dapat memodifikasi file tersebut.
[<pts/0> root@proxy /root]$ touch /home/quota.user /home/quota.group
[<pts/0> root@proxy /root]$ chmod 600 /home/quota.*
[<pts/0> root@proxy /root]$ chmod 600 /home/quota.*
Perintah “touch” digunakan untuk menciptakan file
kosong yang baru. File quota.user dan quota.group adalah file yang
digunakan sebagai penyimpanan setingan quota. Untuk menghidupkan
daemon quota, kita bisa menggunakan perintah:
quotaon [device]
[<pts/0> root@proxy /root]$ /sbin/quotaon /dev/hda7
-> atau
[<pts/0> root@proxy /root]$ /sbin/quotaon -a
-> atau
[<pts/0> root@proxy /root]$ /sbin/quotaon -a
-> untuk mematikan daemon quota…
[<pts/0> root@proxy /root]$ /sbin/quotaoff -a
[<pts/0> root@proxy /root]$ /sbin/quotaoff -a
Memberikan Quota Untuk User dan Group
Untuk memberikan quota kepada user dan group, kita
membutuhkan program “edquota”. Edquota adalah sebuah editor quota yang
menggunakan text editor “vi” dan digunakan memodifikasi settingan
quota. Misalnya, kita memberikan quota untuk user “cupid”.
[<pts/0> root@proxy /root]$ edquota -u cupid
Disk quotas for user cupid (uid 1200):
Filesystem blocks soft hard inodes soft hard
/dev/hda7 8 0 0 2 0 0
Disk quotas for user cupid (uid 1200):
Filesystem blocks soft hard inodes soft hard
/dev/hda7 8 0 0 2 0 0
-> Dari eksekusi di atas kita bisa melihat bahwa:
- blocks adalah jumlah space (dalam KB) yang sudah dikonsumsi oleh user yang bersangkutan.
- soft adalah batas space (dalam KB) di suatu partisi yang digunakan user. Tetapi masih memberikan kelonggaran kepada user / group jika melebihi kapasitas yang ditetapkan sesuai batas waktu tertentu.
- hard sama dengan soft, namun perbedaan yang mencolok adalah, hard tidak memberikan kelonggaran bagi user / group pada jumlah kapasitas disk yang digunakan. Jika jumlah block yang dikonsumsi sudah mencapai batas maksimal, maka sudah tidak ada lagi space yang dapat digunakan.
- blocks adalah jumlah space (dalam KB) yang sudah dikonsumsi oleh user yang bersangkutan.
- soft adalah batas space (dalam KB) di suatu partisi yang digunakan user. Tetapi masih memberikan kelonggaran kepada user / group jika melebihi kapasitas yang ditetapkan sesuai batas waktu tertentu.
- hard sama dengan soft, namun perbedaan yang mencolok adalah, hard tidak memberikan kelonggaran bagi user / group pada jumlah kapasitas disk yang digunakan. Jika jumlah block yang dikonsumsi sudah mencapai batas maksimal, maka sudah tidak ada lagi space yang dapat digunakan.
-> kemudian bisa kita rubah menjadi:
[<pts/0> root@proxy /root]$ edquota -u cupid
Disk quotas for user cupid (uid 1200):
Filesystem blocks soft hard inodes soft hard
/dev/hda7 8 10000 10000 42 0 0
[<pts/0> root@proxy /root]$ edquota -u cupid
Disk quotas for user cupid (uid 1200):
Filesystem blocks soft hard inodes soft hard
/dev/hda7 8 10000 10000 42 0 0
-> bagi anda yang belum terbiasa menggunakan text
editor vi, anda bisa mengawali pengeditan dengan menekan tombol huruf
vocal (a,i,u,e,o) untuk masuk ke “input mode”, kemudian editlah
sesuai selera anda. Untuk menyimpan file tersebut, tekanlah tombol
“Esc” untuk masuk ke “Command Mode”, kemudian ketik “:wq [enter]”.
Untuk memastikan bahwa quota sudah diberikan pada user cupid, maka ceklah.
[<pts/0> root@proxy /root]$ quota -v
Disk quotas for user cupid (uid 1200):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 28 10000 10000 8 0 0
Disk quotas for user cupid (uid 1200):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 28 10000 10000 8 0 0
Menduplikasi Setting Quota Suatu User Untuk User Lain
Terkadang ad sebuah ide bagaimana cara yang lebih
cepat untuk menset batasan quota untuk user lebih dari satu. Untuk
ide ini kita lebih baik memakai sistem userid. Di sini kita bisa
menentukan range / jangkauan mulai dari userid berapa sampai berapa.
Jadi setting quota suatu user dikopikan ke user yang idnya berada di
dalam range tersebut. Perintahnya:
# edquota -p [user_yang_mempunyai_quota] [start uid] [end uid]
-> untuk lebih jelasnya perhatikan contoh berikut:
-> agar lebih jelas perhatikan daftar user di file /etc/passwd berikut:
-> agar lebih jelas perhatikan daftar user di file /etc/passwd berikut:
223 /root$ tail /etc/passwd
rpc:x:32:32:RPC portmap user:/:/bin/false
sshd:x:33:33:sshd:/:
gdm:x:42:42:GDM:/var/state/gdm:/bin/bash
pop:x:90:90:POP:/:
nobody:x:99:99:nobody:/:
wardi:x:1000:100::/home/wardi:/bin/ksh
explode:x:120:100::/home/explode:/bin/csh
darkbugs:x:5000:100::/home/darkbugs:/bin/csh
cupid::1200:100::/home/cupid:/bin/csh
endri::1888:100::/home/endri:
rivero:x:100:100::/home/rivero:
a:x:101:100::/home/a:
b:x:102:100::/home/b:
c:x:103:100::/home/c:
d:x:104:100::/home/d:
e:x:105:100::/home/e:
rpc:x:32:32:RPC portmap user:/:/bin/false
sshd:x:33:33:sshd:/:
gdm:x:42:42:GDM:/var/state/gdm:/bin/bash
pop:x:90:90:POP:/:
nobody:x:99:99:nobody:/:
wardi:x:1000:100::/home/wardi:/bin/ksh
explode:x:120:100::/home/explode:/bin/csh
darkbugs:x:5000:100::/home/darkbugs:/bin/csh
cupid::1200:100::/home/cupid:/bin/csh
endri::1888:100::/home/endri:
rivero:x:100:100::/home/rivero:
a:x:101:100::/home/a:
b:x:102:100::/home/b:
c:x:103:100::/home/c:
d:x:104:100::/home/d:
e:x:105:100::/home/e:
-> kita akan memilih hanya user yang mempunyai userid antara 100-105 saja yang akan diberikan quota.
[<pts/0> root@proxy /root]$ edquota -p cupid 100-105
-> atau
[<pts/0> root@proxy /root]$ edquota -p cupid 100 101 102 103 104 105
-> kita mengkopikan quota dari user cupid ke user lain yang mempunyai id 100-105.
-> untuk memeriksa, kita bisa menggunakan pilihan -v untuk quota, contonya kita memeriksa quota untuk user yang “d” yang mempunyai userid 104 mempunyai setting quota yang sama dengan user cupid.
-> untuk memeriksa, kita bisa menggunakan pilihan -v untuk quota, contonya kita memeriksa quota untuk user yang “d” yang mempunyai userid 104 mempunyai setting quota yang sama dengan user cupid.
[<pts/0> root@proxy /root]$ quota -v d
Disk quotas for user d (uid 104):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 8 10000 10000 2 0 0
Disk quotas for user d (uid 104):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 8 10000 10000 2 0 0
[<pts/0> root@proxy /root]$ quota -v a b c d e
Disk quotas for user a (uid 101):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 8 10000 10000 2 0 0
Disk quotas for user b (uid 102):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 8 10000 10000 2 0 0
Disk quotas for user c (uid 103):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 8 10000 10000 2 0 0
Disk quotas for user d (uid 104):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 8 10000 10000 2 0 0
Disk quotas for user e (uid 105):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 8 10000 10000 2 0 0
Disk quotas for user a (uid 101):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 8 10000 10000 2 0 0
Disk quotas for user b (uid 102):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 8 10000 10000 2 0 0
Disk quotas for user c (uid 103):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 8 10000 10000 2 0 0
Disk quotas for user d (uid 104):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 8 10000 10000 2 0 0
Disk quotas for user e (uid 105):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 8 10000 10000 2 0 0
Memodifikasi Parameter Batasan Waktu Quota (grace period)
Kebijakan pemberian quota / batasan penggunaan space
disk juga membutuhkan waktu, Berapa lama user akan dibatasi dengan
quota tersebut. Secara default lama batasan quota adalah 7 hari.
Namun kita dengan mudah dapat merubahnya. Setting waktu yang
diijinkan adalah hari, jam, menit dan detik (days, hours, minutes,
seconds).
[<pts/0> root@proxy /root]$ 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/hda7 7days 7days
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/hda7 7days 7days
-> Misalkan kita mau mengganti dari yang 7 hari itu kita ganti cuman 1 hari saja.
[<pts/0> root@proxy /root]$ 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/hda7 1days 1days
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/hda7 1days 1days
-> dll…..
Memberikan Quota Untuk Group
Selain dapat memberikan batasan untuk user, quota
juga dapat juga memberikan batasan untuk group. Group adalah
sekelompok user yang tergabung dalam sebuah team di sebuah system.
Dengan option “-g” kita bisa memberikan quota ke sebuah group.
Katakanlah kita mau memberikan quota untuk group “users”, maka kita
dapat memberikan perintah berikut:
[<pts/0> root@proxy /root]$ edquota -g users
Disk quotas for group users (gid 100):
Filesystem blocks soft hard inodes soft hard
/dev/hda7 204800 0 0 8566 0 0
Disk quotas for group users (gid 100):
Filesystem blocks soft hard inodes soft hard
/dev/hda7 204800 0 0 8566 0 0
-> kemudian ganti menjadi..
[<pts/0> root@proxy /root]$ edquota -g users
Disk quotas for group users (gid 100):
Filesystem blocks soft hard inodes soft hard
/dev/hda7 204800 155000 155000 8566 0 0
Disk quotas for group users (gid 100):
Filesystem blocks soft hard inodes soft hard
/dev/hda7 204800 155000 155000 8566 0 0
-> maka batasan space disk untuk group users adalah 155 MB.
Menampilkan Ringakasan Seluruh Setting Quota dengan Repquota
Untuk melihat seluruh daftar user yang dikenai
kebijakan quota maupun tidak, kita bisa menggunakan tool “repquota”.
Repquota digunakan untuk meringkas quota milik sebuah file system.
Format penulisan:
/usr/sbin/repquota [ -vsiug ] [ -c | -C ] [ -t | -n ] [ -F format-name ] filesystem
/usr/sbin/repquota [ -avtsiug ] [ -c | -C ] [ -t | -n ] [ -F format-name ]
-> untuk lebih jelasnya silahkan baca di “man quota”. ingin lebih mahir? silahkan banyak mencoba-coba.
-> ingin lebih cepat dan ringkas coba perintah sederhana berikut:
[<pts/0> root@proxy /root]$ repquota -a
*** Report for user quotas on device /dev/hda7
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
———————————————————————-
root — 2400616 0 0 154147 0 0
bin — 28 0 0 3 0 0
lp — 12 0 0 1 0 0
news — 152 0 0 20 0 0
uucp — 920 0 0 41 0 0
smmsp — 4 0 0 1 0 0
mysql — 8 0 0 2 0 0
nobody — 4 0 0 1 0 0
wardi — 204572 0 0 8537 0 0
explode — 8 0 0 2 0 0
darkbugs — 8 0 0 2 0 0
cupid — 28 10000 10000 7 0 0
endri — 12 0 0 3 0 0
rivero — 8 10000 10000 2 0 0
a — 8 10000 10000 2 0 0
b — 8 10000 10000 2 0 0
c — 8 10000 10000 2 0 0
d — 8 10000 10000 2 0 0
e — 8 10000 10000 2 0 0
#94 — 66388 0 0 2171 0 0
*** Report for user quotas on device /dev/hda7
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
———————————————————————-
root — 2400616 0 0 154147 0 0
bin — 28 0 0 3 0 0
lp — 12 0 0 1 0 0
news — 152 0 0 20 0 0
uucp — 920 0 0 41 0 0
smmsp — 4 0 0 1 0 0
mysql — 8 0 0 2 0 0
nobody — 4 0 0 1 0 0
wardi — 204572 0 0 8537 0 0
explode — 8 0 0 2 0 0
darkbugs — 8 0 0 2 0 0
cupid — 28 10000 10000 7 0 0
endri — 12 0 0 3 0 0
rivero — 8 10000 10000 2 0 0
a — 8 10000 10000 2 0 0
b — 8 10000 10000 2 0 0
c — 8 10000 10000 2 0 0
d — 8 10000 10000 2 0 0
e — 8 10000 10000 2 0 0
#94 — 66388 0 0 2171 0 0
No comments:
Post a Comment