似乎可以在网络安装上设置用户可以消耗多少空间的配额。
# edquota ramesh
Disk quotas for user ramesh (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/sda3 1419352 0 0 1686 0 0
Run Code Online (Sandbox Code Playgroud)
您还可以对用户拥有的 inode 数量设置软限制和硬限制。
为什么您需要限制用户可以访问的 inode 数量?
用户是否仍然能够用 1 个非常大的文件填满磁盘?
您限制用户可以访问的 inode 数量的原因是,他们不会通过创建大量 0 字节文件而使整个系统耗尽 inode。
对于大多数 Linux 文件系统(例如 ext3 和 ext4),每个文件(包括设备文件)或目录都有一个inode —— 一个用于指向给定文件/目录的编号。如果系统耗尽了 inode,则硬盘有多少可用空间并不重要;在释放 inode 之前,不可能创建新文件。
要查看每个文件系统还剩下多少个 inode:
df -i
Run Code Online (Sandbox Code Playgroud)
文件系统具有的 inode 数由-i格式化文件系统时的参数决定。例子:
mkfs -t ext4 -i 1024 /dev/foo # One inode per 1024 bytes
mkfs -t ext4 -i 2048 /dev/foo # One inode per 2048 bytes
mkfs -t ext4 -i 8192 /dev/foo # One inode per 8192 bytes
Run Code Online (Sandbox Code Playgroud)
使用该-i 1024选项创建的文件系统的inode 数量将是使用该-i 8192选项创建的文件系统的八倍(假设两个文件系统的大小相同)。有时,特别是对于一些邮件服务器(使用“maildir”)或老式 Usenet spool,需要更多的 inode,因为这些用例会创建很多小文件。
请注意,某些 Linux 文件系统(例如 Reiserfs)能够动态分配 inode,并且不会在文件系统创建时创建所有 inode。