Linux:Quotaでディスク使用容量を制限する
生徒がファイルサーバにデータを保存できるようになったら,考えなければならないこととして,
- 自由に無制限でデータを保存させるか?
- それとも,ある程度制限をかけておいたほうがよいか?
ということがあるでしょう.勤務校では,授業で使用するデータが保管できればよいという考えで,容量制限をかけることにしました.ファイルサーバはLinuxでsambaを動かしているので,Quotaを使って容量制限をかけることになります.今回Quotaの設定を行うLinuxディストリビューションは,VineLinux3.2です.このディストリビューションではあらかじめQuotaはインストールされているので,カーネルの再構築は必要ありません.
/etc/rc.d/rc.sysinit
にはしっかりとQuotaの起動に関する処理は記述されているので,このあたりも気にする必要なし.
生徒がデータを保存する場所は/homeなので,homeにQuotaをかけることにする.Quotaの対象となるのは,studentグループに属するユーザ(=生徒)なんだけれども,個々に制限をかけなければならんことからユーザ個々にQuotaを割り当てていく.
/etc/fstab
において,/homeの行のdefaultsのあとに
,usrquota
を追加する.
#mount -o remount /home
して,設定を有効にする.
#mount
すれば,成功したかどうか確認できる.
Quotaが設定値を保存するファイルを作成する
#cd /home
#touch quota.user
#chmod 600 quota.user
で,ついにディスク使用量の制限設定(まずは一人目)をする.
#edquota 生徒IDの一番目
ハードリミットをかける(容量オーバーしたら即保存不能のほうがスッキリするという単にそれだけ)ので,blocksの2つ左のhardの下の数字を51200にする.(1ブロック=1KByteなので,これで50MByteを設定したことになる)
それができたら,次はすべてのユーザにquotaをかける.
#edquota -p 生徒IDの一番目 二番目の生徒
ただしすべてのIDに対してこのコマンドを実行する必要があるので,ID登録で使ったシェルスクリプトをチョコっと変えて一気に進める.
終わったら再起動して設定が有効になっているかどうかチェックする.正常に動作していることを確認できたら,作業は完了です.