サーバに登録したユーザは自分のホームパスに書き込みに関する使用制限はありません。(ディスク容量が許す限り使用できます。)
ISPなどで、ホームページ使用容量が100MByteとか使用制限している様に自サーバのユーザにもディスク使用制限を行う方法を紹介します。
この機能を利用するには「quota」と言うパッケージで行うことができます。
パッケージ「quota」がインストールされているか確認 # rpm -q quota quota-3.10-2 上記の様に、コマンド実行結果が何も表示されない場合はインストールされていないので 「quota」をインストールする必要があります。 quotaのインストール # yum -y install quota 「quota」が有効になっているか確認 # vi /etc/fstab LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0 /dev/sda3 swap swap defaults 0 0 /dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0 /dev/sdb1 /home ext3 defaults,usrquota 1 2 /dev/sdb2 /extdisk2 ext3 defaults 1 2 usrquotaが存在していなければ、追加してください。 上記の例では、「/home」に対して機能します。 一度、システムを再起動します # reboot ディスクの使用量記録ファイルの作成 # quotacheck -a # ls -l /home/aquota.user -rw------- 1 root root 7168 6月 29 23:12 aquota.user |
ユーザ「linux」に対して使用制限をかける # edquota -u linux Disk quotas for user linux (uid 501): Filesystem blocks soft hard inodes soft hard /dev/sdb1 3332 512 1024 51 0 0 上記の「soft」と「hard」が、使用制限量となります。 「soft」は、設定された大きさを超えると警告を発します 「hard」は、設定された大きさを超えると書き込みができなくなります。 値の単位はキロバイトで指定します。 quotaを有効にします。 # quotaon -av /dev/sdb1 [/home]: user quotas turned on |
使用制限をかけたユーザ「linux」でログイン Fedora Core release 2 (Tettnang) Kernel 2.6.10-1.771_FC2 on an i686 login: linux Password: Last login: Wed Jun 29 23:34:14 from 192.168.1.10 自分のホームパスをキロバイトで表示 [linux@fedora linux]$ ls -kl 使用している容量は510KByte -rw-r--r-- 1 linux linux 510 6月 29 23:34 wk 複製を作成して512KByteを超えさせてみる [linux@fedora linux]$ cp wk wk1 警告メッセージが出力された sdb1: warning, user block quota exceeded. 自分のホームパスをキロバイトで表示 [linux@fedora linux]$ ls -kl 使用している容量は510KByte×2ファイルで1020KByte -rw-r--r-- 1 linux linux 510 6月 29 23:34 wk -rw-r--r-- 1 linux linux 510 6月 29 23:35 wk1 もう一度、複製を作成して1024KByteを超えさせてみる [linux@fedora linux]$ cp wk wk2 警告と超過メッセージが出力された sdb1: write failed, user block limit reached. cp: writing `wk2': ディスク使用量制限を超過しました 自分のホームパスをキロバイトで表示 [linux@fedora linux]$ ls -kl -rw-r--r-- 1 linux linux 510 6月 29 23:34 wk -rw-r--r-- 1 linux linux 510 6月 29 23:35 wk1 操作で超過したファイルの書き込みはできていない(0Byte) -rw-r--r-- 1 linux linux 0 6月 29 23:38 wk2 |
猶予期間を変更する事も可能です。この猶予期間は、設定された値を過ぎると「soft」→「hard」になります。
オーバーした容量は、ファイルを操作(Openなど)する度に削除されます。
デフォルトでは7日間(1週間)の猶予期間となっています。設定できる単位は「days,
hours, minutes, seconds」です。
猶予期間の編集 # 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/sdb1 7days 7days |