如何限制用户可以在Linux中创build的文件夹的最大数量

由于我已经被告知,如果我的电脑中的用户将创build“无限”数量的文件夹/文件(甚至空)它可以导致我的电脑变得更慢(甚至卡住),我想限制文件的最大数量/用户可以创build的目录。

恐怕一个用户会尝试创build大量的文件,这将成为所有其他用户的问题,所以这将是一个安全问题,我该怎么做,如何限制最大数量每个用户可以创build的文件/目录

这是配额的设计目的。 您可以使用文件系统配额为每个用户和/或每个组执行限制:

  • 可以使用的磁盘空间大小
  • 可以使用的块的数量
  • 可以创建的inode的数量。

inode的数量将基本上限制用户可以创建的文件和目录的数量。

关于如何在许多来源中配置文件系统配额有很多非常好的质量文档,我建议您进一步阅读:

您应该首先在您的文件系统上启用配额检查

修改/ etc / fstab,并将关键字usrquota和grpquota添加到您想要监视的相应文件系统。

以下示例指示在/ home文件系统上启用了用户和组配额检查

# cat /etc/fstab LABEL=/home /home ext2 defaults,usrquota,grpquota 1 2 

完成后重新启动。

一旦启用了文件系统上的磁盘配额检查,首先收集所有配额信息,如下所示。

 # quotacheck -avug quotacheck: Scanning /dev/sda3 [/home] done quotacheck: Checked 5182 directories and 31566 files quotacheck: Old file not found. quotacheck: Old file not found. 

现在,使用edquota命令(如下所示)来编辑特定用户的配额信息。

例如,要更改用户'ramesh'的磁盘配额,请使用edquota命令,该命令将在编辑器中打开软限制值,如下所示。

 # edquota ramesh Disk quotas for user ramesh (uid 500): Filesystem blocks soft hard inodes soft hard /dev/sda3 1419352 0 0 1686 0 0 

硬限制 – 如果您将2GB指定为硬限制,用户将无法在2GB之后创建新文件

软限制 – 如果您指定1GB为软限制,则一旦达到1GB限制,用户将收到“超出磁盘限额”的警告消息。 但是,他们仍然可以创建新的文件,直到达到硬性限制

最后,如果您希望每天对用户配额进行报告,则可以执行以下操作。

将quotacheck添加到每日cron作业。 在/etc/cron.daily目录下创建一个quotacheck文件,如下所示,每天运行quotacheck命令。 这会将quotacheck命令的输出发送到根邮件地址。

 # cat /etc/cron.daily/quotacheck quotacheck -avug