【问题标题】:How can I limit the max numbers of folders that user can create in linux如何限制用户可以在 linux 中创建的最大文件夹数
【发布时间】:2016-08-22 01:09:54
【问题描述】:

由于有人告诉我,如果我的计算机中的用户将创建“无限”数量的文件夹/文件(甚至是空的),这可能会导致我的计算机变得慢得多(甚至卡住),我想限制最大值用户可以创建的文件/目录的数量。

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

【问题讨论】:

  • 您使用的是什么文件系统?是ext4吗?我假设既然你说无限
  • 这是配额检查的用途。

标签: linux security filesystems directory linode


【解决方案1】:

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

修改/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

【讨论】:

  • 他实际上需要一个 inode 限制而不是块限制。但这确实是一个 RTFM 问题。
【解决方案2】:

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

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

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

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

【讨论】:

  • 谢谢,这正是我需要的
猜你喜欢
  • 2011-06-19
  • 2011-08-18
  • 2021-12-17
  • 2021-04-19
  • 1970-01-01
  • 2022-11-26
  • 1970-01-01
  • 1970-01-01
  • 2015-07-09
相关资源
最近更新 更多