Solaris 10 での クォータ(quota)の設定
クォータをやるには、マスタのユーザを作っちゃうのがよさげ
(シェルは /sbin/nologin とかにしとく)
たとえば、
# useradd -u 12345 -g staff -d /home/quota -s /sbin/nologin quota
みたいなかんじのユーザでいい。
あとは、/etc/vfstab の mount option(一番右)に rq というのを入れておく
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # /dev/dsk/c1t0d0s0 /dev/rdsk/c1t0d0s0 / ufs 1 no rq
こんなかんじ。
で、edquota コマンドでマスタのユーザ(今回の例では quotaユーザ)にクォータの値を設定する
# edquota quota fs / blocks (soft = 307200, hard = 409600) inodes (soft = 0, hard = 0)
あとは quotaon コマンドでクォータを有効化
# quotaon /
で、各ユーザにクォータを振るやり方ですが、たとえば、hoge ユーザと fuga ユーザに quota をかけたい場合、
# edquota -p quota hoge fuga
みたいな感じで、-p オプションを使うと、マスタの quota ユーザのクォータ設定を hoge ユーザと fuga ユーザにコピーできます。
あとは、/home を ls するなり、パスワードファイルを覗くなりして、対象ユーザに edquota するシェルを作って cron でまわすと良いと思います。ちなみに、既にクォータを設定しているユーザにさらに edquota しても問題ない(毎回上書きされる)ので、新規ユーザだけを抜き出す処理とか、しなくて平気です。
ついでに、Solaris 10 で quota する場合の注意。
Solaris 10 で / にクォータをかけると、/proc までカウントされてしまうみたいです。JDS(gnome)なんかを使っていると、/proc の使用量が結構大きい(とくに何もしなくても 100MB くらいは使うみたい)ので、 / に クォータをかける場合は要注意です。
え?なんで /export/home にパーティション切ってないかって?
だって、「もしかしたら近い将来にディスクを追加してくれるかなぁ」なんて、淡い(甘い?)期待があったからねぇ...。