最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何设置系统资源限制 ulimit 防范单用户暴力抢占 CPU 内存
时间:2026-06-22 12:07:57 编辑:袖梨 来源:一聚教程网
ulimit是最直接的系统级防护手段,通过-t限制CPU时间(秒)、-v限制虚拟内存(KB)、-u限制进程数,可有效防范单用户暴力抢占;临时设置即时生效,永久配置需写入/etc/security/limits.conf并确保PAM加载。
要防范单用户暴力抢占 CPU 和内存,ulimit 是最直接、最常用的系统级防护手段。它不依赖额外服务,内建于 shell,生效快,适合快速封堵资源滥用行为。
明确关键限制项:CPU 时间与内存用量
暴力抢占通常表现为长时间高 CPU 占用或内存持续增长。ulimit 中对应的核心参数是:
- -t(CPU 时间):限制进程累计使用的 CPU 秒数(非实时运行时间)。设为 300(5 分钟),可让计算密集型脚本运行一段时间后自动终止,避免无限循环拖垮系统。
- -v(虚拟内存):限制进程可申请的总虚拟内存(KB)。比 -m(常驻内存 RSS)更可靠,因现代程序常预分配大块虚拟地址空间,-v 能提前拦截。
- -u(最大进程数):防 fork 炸弹。设为 128 或更低,能有效阻断递归创建子进程的攻击。
临时应急:立即生效的会话级限制
发现异常用户正在执行可疑脚本时,可立刻登录其终端或 su 切换过去,执行:
ulimit -t 300ulimit -v 2097152 # 2GBulimit -u 128
这些设置即时作用于当前 shell 及所有后续启动的子进程。注意:普通用户只能降低自身限制,无法提高;root 可设任意值。
永久固化:通过 limits.conf 全局生效
编辑 /etc/security/limits.conf,按需添加规则。例如限制所有普通用户:
* soft cpu 300* hard cpu 300* soft as 2097152* hard as 2097152* soft nproc 128* hard nproc 128
说明:
- cpu 对应 -t,单位为秒;as 对应 -v(address space),单位为 KB;nproc 对应 -u。
- soft 是默认生效值,用户可自行调低;hard 是绝对上限,仅 root 可修改。
- 规则在用户下次登录时加载,SSH 登录、su 切换、图形界面登录均适用。
验证与排查要点
配置后务必验证是否真正生效:
- 新登录后执行 ulimit -a,确认 cpu、as、nproc 值已更新;
- 运行测试命令如 yes > /dev/null &(CPU 持续占用),观察是否在设定秒数后自动退出;
- 检查 /var/log/secure 或 dmesg,若进程被 kill,通常提示 “Killed process … (core dumped)” 或 “Out of memory: Kill process…”;
- 注意:某些服务(如 systemd 启动的服务)可能绕过 limits.conf,需额外配置 /etc/systemd/system.conf 中的 DefaultLimitCPU 等参数。
相关文章
- 电子商务平台类型与主流模式解析 - 2026最新分类指南 06-22
- Iconfont图标库使用教程 - 2026最新入门指南 06-22
- 网店客服工作内容与技能要求 - 2026最新实用指南 06-22
- 米家智能家电官方选购平台 - 2026最新款全屋智能解决方案 06-22
- 2026年了 - 还在用过时的网络用语吗 06-22
- 共享充电宝租赁服务 - 便捷随借随还的移动电源 06-22