通过配置ulimit和limits.conf文件可有效限制用户资源使用。首先利用ulimit命令设置软硬限制,如文件数、内存、CPU等,临时生效;再编辑/etc/security/limits.conf或/etc/security/limits.d/下的配置文件实现永久限制,需确保PAM模块pam_limits.so已启用;修改后用户重新登录即可通过ulimit -a或cat /proc//limits验证配置。

在Linux系统中,限制用户资源使用是保障系统稳定性和安全性的关键措施之一。通过合理配置 ulimit 参数,可以控制单个用户或进程对CPU、内存、文件句柄等资源的占用,防止资源耗尽导致系统崩溃。下面介绍如何使用 ulimit 和系统配置文件实现资源限制。
ulimit 基本概念
ulimit 是一个shell内置命令,用于查看和设置用户进程的资源限制。它分为“软限制”(soft limit)和“硬限制”(hard limit):
- 软限制:当前生效的限制值,用户可以自行调低,但不能超过硬限制
- 硬限制:管理员设定的上限,只有root用户才能修改
例如,查看当前用户的文件打开数限制:
ulimit -n查看所有限制:
ulimit -a临时设置用户资源限制
可以直接在shell中使用 ulimit 命令临时修改限制,仅对当前会话有效:
- 限制最大打开文件数:ulimit -n 1024
- 限制进程最大虚拟内存(KB):ulimit -v 524288
- 限制CPU使用时间(秒):ulimit -t 300
- 限制创建文件大小:ulimit -f 10240(单位为KB)
这些设置在退出终端后失效,适合测试用途。
永久配置系统资源限制
要永久生效,需修改系统配置文件。主要涉及两个文件:
- /etc/security/limits.conf:主配置文件,定义用户或用户组的资源限制
- /etc/security/limits.d/*.conf:额外配置目录,优先级高于主文件
编辑 /etc/security/limits.conf,添加如下格式的规则:
免费 盛世企业网站管理系统(SnSee)系统完全免费使用,无任何功能模块使用限制,在使用过程中如遇到相关问题可以去官方论坛参与讨论。开源 系统Web代码完全开源,在您使用过程中可以根据自已实际情况加以调整或修改,完全可以满足您的需求。强大且灵活 独创的多语言功能,可以直接在后台自由设定语言版本,其语言版本不限数量,可根据自已需要进行任意设置;系统各模块可在后台自由设置及开启;强大且适用的后台管理支
* soft nofile 1024
* hard nofile 65536
root soft nofile 4096
root hard nofile 65536
@users soft nproc 100
@developers hard as 2097152
常用限制项说明:
- nofile:最大打开文件数
- nproc:最大进程数
- as:地址空间(KB)
- core:core文件大小
- memlock:锁定内存大小
PAM 模块启用限制
limits.conf 的生效依赖于PAM(Pluggable Authentication Modules)模块。确保系统已启用 pam_limits.so:
- 检查文件 /etc/pam.d/common-session 或 /etc/pam.d/login
- 包含以下行:session required pam_limits.so
大多数现代Linux发行版默认已启用,若未生效请手动添加。
验证配置是否生效
修改后,重新登录用户,使用以下命令查看限制:
ulimit -a或查看特定进程的限制:
cat /proc/例如,查看PID为1234的进程限制:
cat /proc/1234/limits基本上就这些。通过合理配置 ulimit 和 limits.conf,可以有效防止用户或进程滥用系统资源。注意修改后需重新登录才能生效,生产环境中建议先在测试环境验证配置。









