特定のディレクトリのファイル数(サイズではない)を制限できますか?
私のディレクトリには最大5つのファイルしか含めることができず、cp file_6 mydir
許可されません。
答え1
quota
もはやファイルが生成されないように、inodeの数を使用して制限することができます。これを達成する最も簡単な方法(IMHO)は、ディレクトリを特定のグループ(たとえば)に設定することですquotagroup
。
ステップごとに、すべての操作は以下を実行root
または使用して実行されますsudo
。
1. インストールクォータ
quota
すべての標準リポジトリに表示する必要があり、デフォルトのパッケージマネージャを使用してください。
2. クォータオプションの搭載と追加
/etc/fstab
たとえば、個々のグループクォータのマウントオプションでグループクォータを編集して追加しますhome
(grpquota
セクションに焦点を当てます)。
UUID=ab123-cd45-ef67 /home ext4 defaults,grpquota 0 1
実行しmount -a
て適用または使用します。mount -o remount,grpquota /home
3. クォータの有効化
quotacheck -cgv /home
-c
グループクォータのクォータ制御ファイル()は、そのデバイスのマウントポイントレベルで再生成されますaquota.group
。ベルボス-g
-v
quotaon -gv /home
クォータチェックを有効にします。-gv
上記のように。
4. 制限付きグループの作成とディレクトリ設定の調整
addgroup quotagroup
chgrp quotagroup /home/dir/to/limit
chmod g+s /home/dir/to/limit
制限付きグループを作成しquotagroup
、そのディレクトリのグループ所有権をに変更し、quotagroup
ディレクトリ内の新しいファイルが親グループと同じグループ所有権を持つようにします(g+s
="set gid-bit")。
5. クォータの定義
edquota -g quotagroup /home
クォータ設定の編集を許可します。次のようになります。
Disk quotas for group quotatest (gid 1003):
Filesystem blocks soft hard inodes soft hard
/dev/sda2 4 0 0 3 0 0
使用されるブロックを定義し、ブロックのソフトおよびハードクォータを定義しblocks
、inodesは現在使用されているinodeと制限を表示します。
inodeのハード制限を6
ディレクトリ自体の場合は1に設定し、5つのファイルの場合は5に設定します。ソフトリミットは、指定された期間中にリミットが一時的に超過することを許可するために使用されます。現在使用されている値は変更しないでください。
6.制限、質問、コメント
- これらの各ディレクトリには、個別のクォータ+特殊グループが必要です。
root
クォータ制限は適用されません。- クォータは特定のディレクトリだけでなく、マウントポイント全体にも適用されます。つまり、ディレクトリには適用できません。
- 繰り返しますが、制限されたディレクトリにあるかどうかにかかわらず、グループ内
/home
のすべてのファイルはquotagroup
クォータに含まれます。 XFS
プロジェクトクォータ、つまりディレクトリ内のプロジェクトのクォータを許可するファイルシステム。可能であれば、特にこれらの多くの場合にこれを行うことをお勧めします。- デバイス全体に加えて、
XFS
仮想(ループバック)デバイスも役立ちます。