📜  limits.conf 文件限制用户,在 Linux 中使用示例进行处理

📅  最后修改于: 2022-05-13 01:57:29.074000             🧑  作者: Mango

limits.conf 文件限制用户,在 Linux 中使用示例进行处理

Linux 可以完全控制系统。在本文中,我们将了解文件limits.conf 。 limit.conf 是一个配置,用于将资源限制为用户、组。现在让我们了解limits.conf的文件结构以及我们如何使用limits.conf来限制用户的资源。在继续之前,请注意要编辑此文件,您必须具有 root 权限。

limit.config 的完整路径是:

/etc/security/limits.conf

pam_module是一个模块,它使用 ulimit 命令来应用limits.conf 文件中的限制。

limit.conf 文件的基本语法是:

现在让我们逐个了解每个字段



领域

在这个领域,我们需要命名我们要限制的人。以下可以是该字段的值

  • 用户名
  • 团队名字
  • * 指定所有
  • 用户身份
  • 组名

类型

在这个领域,我们提到了我们将应用到所提到的域的限制类型。该字段有两个值,

  • 硬:用户不能跨越提到的值。
  • 软:用户可以跨越提到的值,直到预先设定硬值。

物品

此字段提及我们将针对提到的域限制哪些资源。以下是此字段的一些值

  • 核心:限制核心文件大小(以 KB 为单位)
  • 数据:以 KB 为单位的最大数据大小
  • fsize:最大文件大小 (KB)
  • 堆栈:以 KB 为单位的最大堆栈大小
  • cpu:最大 CPU 时间为分钟

要查看此字段的所有值,请阅读limits.conf 的手册

价值

此字段存储上述限制的值。

用户限制

现在让我们看看如何使用limits.conf 文件来限制用户。我们将通过一个例子来理解这一点。所以为了限制用户,我们需要提到 username 作为域字段。在本例中,GFG 是用户。之后我们不得不提到限制的类型,在这个例子中,我们设置了硬类型。现在首先设置项目,我们需要从可用项目中选择任何项目,因此在此示例中,我们选择使用 CPU 项目。现在我们必须提到值,项目 CPU 的值必须以分钟为单位,因此在此示例中,我们将值提及为 10 分钟。这是我们的限制:

gfg        hard    cpu        10

组限制

为了限制组,我们可以使用与 value 和 item 相同的格式和值,但不要使用用户名提及组名。这是员工组的一个示例

emplyee        hard    nproc    30

使用通配符应用限制

我们已经将一个域视为* (星号)。要将限制应用于整个系统,我们可以使用此通配符域。这是一个带有通配符的示例,用于在系统上应用有限数量的登录。



*    -    maxsyslogins    20

应用此限制后,系统的最大登录次数为 20。

为限制指定用户 ID 范围

当我们想为多个用户指定一个限制,但用户不属于同一组时,我们可以指定限制必须应用的用户范围。当我们提到用户 ID 范围时,所提到的限制将应用于属于该范围的用户 ID。要指定范围,请使用:操作。下面是一个例子:

1000:1020    hard    nproc     50

此限制将应用于 1000 到 1020 范围内的用户 ID。

为限制指定组 ID 范围

与用户 ID 相同,当我们必须对多个组 ID 应用相同的限制时,我们可以指定组 ID 的范围。使用:运算符来提及范围。

@500:505    soft    cpu        10000

此限制将应用于 500 到 505 之间的组 ID。

限制进程数

现在让我们探索比上面提到的更多的项目。有一项名为nproc的项目通过使用此选项我们可以限制用户或组 ID 的数量。因此限制用户 gfg 的进程数使用以下限制。

gfg   hard    nproc        50

应用此限制后,用户 gfg 将最多拥有 50 个进程。

限制 CPU 时间

还有一个叫做cpu 的项目,用于限制提到的用户或组的 CPU 时间。因此,要限制用户 gfg 的 CPU 时间 1000 个周期,请使用以下限制:

gfg      soft    cpu     0000

限制打开文件数

nofile是一个项目,通过使用它我们可以限制用户可以打开的最大文件数。 因此,要限制用户 gfg 可以打开的最大文件数为 227,请使用以下限制

gfg      hard     nofile     227

限制登录次数

默认情况下,系统允许我们在系统上无限制地登录,但这会造成安全问题。所以为了避免安全问题,我们可以限制用户或用户组的登录次数。我们可以使用 maxlogins 项来限制组用户登录系统的次数。因此,要限制用户组 gfg 的 10 次登录,我们可以使用以下限制:



@gfg        -       maxlogins       10

限制系统登录次数

在前面的例子中,我们看到了如何限制用户组登录系统的次数。现在为了限制整个系统的最大登录次数,我们可以使用maxsyslogins项。因此,要限制系统的最大登录次数为 50,请使用以下限制:

*        -       maxsyslogins       50

此限制适用于整个系统,而不适用于任何特定用户和用户组。

限制最大文件大小

我们可以通过使用 fsize 项来限制文件的文件大小。此限制可用于限制临时或类似使用类型的文件。因此,要限制单个文件大小为 4 GB 的 gfg,我们可以使用以下限制:

@gfg     -       fsize       4000000

文件大小以 KB 表示。使用不同的域和项目对用户、系统和组应用不同的限制。

现在要知道进程的限制,我们可以使用带有进程 PID 的 cat 命令来了解进程 PID 使用 ps 命令。

cat /proc/PID/limits 

这是例子

输出与limits.conf 文件字段相同。要了解有关 limits.conf 文件设置的更多信息,请使用 man 命令

man limits.conf