当前位置: 首页 > news >正文

准确--CentOS 7 配置用户资源限制(nofile / nproc)


CentOS 7 配置用户资源限制(nofile / nproc)

目标:

  • 提升文件句柄数(nofile)
  • 提升进程数(nproc)
  • 避免启用 UsePAM 后“密码正确却登录失败”的坑

一、临时生效(立即生效,无需重启服务)

使用prlimit强制修改当前 Shell

适合:

  • 立即排障
  • 临时调优
  • 不想重启服务
prlimit --pid$$--nofile=65535:65535 --nproc=65535:65535

参数说明

  • --pid $$:当前 Shell 进程
  • nofile:最大文件句柄数
  • nproc:最大进程数

验证

ulimit-n

输出应为:

65535

⚠️注意
该方式仅对当前 Shell 有效,重新登录即失效。


二、永久生效(推荐生产环境使用)

1️⃣ 修改 limits.conf

vim/etc/security/limits.conf

追加:

* soft nproc 65535 * hard nproc 65535 * soft nofile 65535 * hard nofile 65535

2️⃣ 启用 PAM(关键步骤)

编辑 SSH 配置:

vim/etc/ssh/sshd_config

确保存在并且未注释

UsePAM yes PasswordAuthentication yes

修改后重启 SSH:

systemctl restart sshd

三、【非常关键】否则会出现“密码正确但登录失败”

很多人卡在这里
👉 只开了UsePAM yes,但PAM 认证链不完整

必须正确配置/etc/pam.d/sshd

直接覆盖(最稳妥方式):

cat>/etc/pam.d/sshd<<'EOF' #%PAM-1.0 auth required pam_sepermit.so auth include password-auth account required pam_nologin.so account include password-auth password include password-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close session required pam_loginuid.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open env_params session required pam_namespace.so session optional pam_keyinit.so force revoke session include password-auth session include postlogin # ★ 关键:资源限制生效必须有它 session required pam_limits.so EOF

⭐ 核心点说明

  • pam_limits.so
    👉没有这一行,limits.conf 完全不生效
  • password-auth
    👉 决定“密码是否正确”的真正模块
  • 缺失或顺序错误
    👉100% 导致密码登录失败

四、验证是否真正生效(一定要重新登录)

⚠️重要
已登录的 SSH 会话不会继承新 limits

新开一个 SSH 会话后执行:

ulimit-nulimit-u

期望输出:

65535

五、常见故障自检(备用)

1️⃣ 检查 sshd 实际配置

sshd -T|egrep'usepam|passwordauthentication'

2️⃣ 查看认证失败原因

tail-n50/var/log/secure

3️⃣ 用户是否被 PAM 锁定

pam_tally2 --user 用户名

解锁:

pam_tally2 --user 用户名 --reset

六、一句话总结(给以后自己看的)

  • 临时调试prlimit
  • 永久生效limits.conf + pam_limits.so
  • UsePAM yes 必须配合完整 PAM 文件
  • 否则就是“密码正确但登录失败”

http://www.cnnetsun.cn/news/118733.html

相关文章:

  • 不同职业人群对EmotiVoice的应用需求分析
  • 手机系统预装应用包彻底删除
  • EmotiVoice能否实现多人对话同步生成?技术可行性评估
  • FusionCompute 8.0 实验环境搭建:完整资源获取与部署指南
  • AI主播直播间搭建:EmotiVoice语音部分实现
  • 静态代码扫描服务 100分(python、java、c++、js、c
  • Directus周起始日难题:3步从周日切换到周一的技术解决方案
  • 33、网络管理与UUCP使用指南
  • C++核心语法复盘:数据结构编程的底层基石
  • 43、Exim邮件服务器配置与管理全解析
  • 48、互联网新闻服务器INN与NNTP的使用与配置指南
  • 我发现动态时间戳对齐破解跨境急诊预警延迟
  • 面试官:如何提升AIGC生成的可控性?
  • 如何在5分钟内用Mermaid语法轻松生成专业流程图?
  • 大型语言模型服务工具:让AI开发像喝柠檬水一样清爽 [特殊字符]
  • 如何快速掌握Mermaid在线编辑器:面向技术文档编写者的完整教程
  • WGPU性能调优实战:从卡顿到流畅的终极指南
  • 8、iOS 开发中的音频与视频处理
  • 18、构建社交增强现实应用:从坐标存储到社交上下文添加
  • HFT-Orderbook:高性能交易订单簿的终极解决方案
  • veScale:PyTorch原生大语言模型训练框架完整指南
  • Easy Effects终极音效配置指南:50+专业预设深度解析
  • 嵌入式Web服务器实战:STM32Cube与Mongoose完美融合
  • EmotiVoice语音抗噪能力测试:嘈杂环境可用性
  • 拒绝制造虚假情感依赖:产品设计准则
  • 推荐12个中英文降AIGC率工具,亲测有效!(含免费)
  • Taskflow:现代C++并行编程框架深度解析
  • Strapi无头CMS架构深度解析与现代化应用实践
  • 高效实现!分布式链路追踪:TraceIdFilter + MDC + Skywalking
  • EmotiVoice声音克隆功能实测:5秒样本还原度高达90%以上