温馨提示×

CentOS ulimit与安全策略

小樊
53
2025-09-13 21:47:07
栏目: 智能运维

在 CentOS 系统中,ulimit 是一个用于控制用户进程资源限制的命令

ulimit 的主要功能包括:

  1. 控制单个用户进程的资源限制,例如:打开文件描述符的最大数量、进程数、CPU 时间等。
  2. 控制 shell 进程的资源限制,例如:打开文件描述符的最大数量、进程数等。
  3. 通过修改系统配置文件,设置所有用户的资源限制。

ulimit 的常用参数如下:

  • -a:显示当前用户的资源限制。
  • -b:设置软限制的内核内存大小。
  • -c:设置核心文件的最大大小。
  • -d:设置进程的数据段最大大小。
  • -e:设置进程的最大文件描述符数量。
  • -f:设置单个进程允许的最大文件大小。
  • -i:设置进程允许的最大输入/输出数据速率。
  • -l:设置软限制的内存锁定大小。
  • -m:设置进程允许的最大内存使用量。
  • -n:设置进程允许的最大文件描述符数量。
  • -p:设置管道缓冲区的最大大小。
  • -q:设置POSIX消息队列的最大字节数。
  • -r:设置用户进程的最大优先级。
  • -s:设置软限制的栈大小。
  • -t:设置进程允许的最大CPU时间。
  • -u:设置用户进程的最大数量。
  • -v:设置进程允许的最大虚拟内存大小。
  • -x:设置进程允许的最大执行时间。

要修改 ulimit 设置,可以使用以下命令:

ulimit -<limit_type> <limit_value>

例如,要将单个用户的最大文件描述符数量设置为 4096,可以使用以下命令:

ulimit -n 4096

要永久修改 ulimit 设置,需要编辑 /etc/security/limits.conf 文件。例如,要将所有用户的最大文件描述符数量设置为 4096,可以在文件末尾添加以下行:

* soft nofile 4096
* hard nofile 4096

此外,还可以通过编辑 /etc/pam.d/login/etc/pam.d/sshd 文件,将 pam_limits.so 模块添加到 PAM 配置中,以便在用户登录时应用资源限制。

请注意,修改 ulimit 设置可能会影响系统性能和稳定性。在进行更改之前,请确保了解每个参数的含义以及它们对系统的影响。

0