/etc/security 是 Linux 系统中通过 PAM 实现认证、访问控制与资源约束的核心目录,包含 limits.conf(限制用户资源)、console.apps(管控控制台特权命令)、opasswd 和 time.conf(密码历史与时控策略)等关键配置文件,需配合对应 PAM 模块启用并定期审计。

/etc/security 是 Linux 系统中专用于认证、访问控制与资源约束的核心安全配置目录,不直接管理服务或网络,而是通过 PAM(Pluggable Authentication Modules)机制,在用户登录、权限提升、进程资源分配等关键环节施加策略。它的配置直接影响账户行为、系统稳定性与抗攻击能力。
/etc/security/limits.conf:控制用户资源使用上限
该文件定义每个用户或用户组可使用的系统资源软硬限制,例如打开文件数、进程数、内存大小等。
关键字段格式:
<domain> <type> <item> <value>
示例:* soft nofile 1024@developers hard nproc 50-
常用限制项:
-
nofile:最大打开文件描述符数(防 DoS 类攻击) -
nproc:最大进程/线程数(防 fork bomb) -
as:虚拟内存上限(单位 KB) -
memlock:可锁定在内存中的字节数(影响 mlock())
-
-
注意事项:
- 配置仅对PAM 登录会话生效(如 ssh、console),systemd 服务默认不受影响
-
/etc/security/limits.d/*.conf下的文件按字母顺序加载,会覆盖limits.conf中相同 domain 的设置 - 修改后需重新登录才生效;已有会话需手动
ulimit调整(临时)
/etc/security/console.apps/:限制控制台特权命令执行
此目录用于管控哪些程序可在图形登录控制台(如 GNOME Terminal 或 tty login)中被普通用户调用,常用于禁用 reboot、poweroff 等危险操作。
- 典型做法是将对应二进制文件移入子目录并设权限:
sudo mkdir -m 700 /etc/security/console.apps/locked sudo mv /usr/bin/poweroff /etc/security/console.apps/locked/ sudo mv /usr/bin/reboot /etc/security/console.apps/locked/
- 移动后,普通用户执行这些命令将静默失败(无提示、无错误输出),有效防止误操作或提权滥用。
/etc/security/opasswd 与 /etc/security/time.conf
opasswd:由pam_opasswd模块维护,记录用户历史密码哈希,配合pam_pwhistory.so实现“禁止重复使用旧密码”策略(需在/etc/pam.d/common-password中启用)。-
time.conf:配合pam_time.so使用,支持基于时间、终端、用户组的访问控制规则。例如:*;Al0000-2400;tty1;tty2; !root; (允许所有用户在 tty1/tty2 全天登录,但 root 除外)
⚠️ 注意:这两个文件默认不存在,需手动创建并确保对应 PAM 模块已启用,否则无效。
安全加固建议(实操要点)
-
避免全局宽松策略:不要对
*设置过高的hard限制,尤其nproc和as,可能影响 Java、Node.js 等多线程应用启动。 -
优先使用
@groupname而非用户名:便于批量管理,如@docker组统一设no file limit。 -
结合
chattr +i锁定关键配置文件(如limits.conf),防止被恶意篡改:sudo chattr +i /etc/security/limits.conf # 解锁时用:sudo chattr -i /etc/security/limits.conf
-
定期审计生效状态:登录后运行
ulimit -a查看当前限制,再用grep -v '^#' /etc/security/limits.conf | grep -v '^$'检查配置是否被覆盖或遗漏。
不复杂但容易忽略


















