CentOS ulimit日志记录配置方法
在 CentOS 系统中,ulimit 命令用于设置或控制 shell 进程及其子进程可以使用的资源限制。默认情况下,ulimit 的更改不会被持久化记录到日志文件中。如果你希望记录 ulimit 的更改,可以通过以下几种方法实现:
方法一:使用 PAM(Pluggable Authentication Modules)进行持久化记录
PAM 允许你在用户登录时自动应用 ulimit 设置,并可以将这些更改记录到日志中。以下是配置步骤:
-
编辑 PAM 配置文件: 打开
/etc/pam.d/system-auth或/etc/pam.d/login文件,添加以下行:session required pam_limits.so -
配置
/etc/security/limits.conf: 编辑/etc/security/limits.conf文件,添加或修改以下行来设置用户的资源限制:username soft nofile 4096 username hard nofile 8192将
username替换为实际的用户名。 -
启用审计日志: 确保审计服务已启用并配置为记录
ulimit更改。编辑/etc/audit/auditd.conf文件,确保以下行未被注释:log_format = RAW然后重启审计服务:
systemctl restart auditd -
配置审计规则: 编辑
/etc/audit/rules.d/audit.rules文件,添加以下规则来记录ulimit更改:-a exit,always -F arch=b64 -S setrlimit -k ulimit_changes -a exit,always -F arch=b32 -S setrlimit -k ulimit_changes然后重启审计服务:
systemctl restart auditd
方法二:使用脚本记录 ulimit 更改
你可以编写一个脚本来自动记录 ulimit 更改,并在每次更改时执行该脚本。
-
创建日志文件: 创建一个日志文件来记录
ulimit更改:touch /var/log/ulimit_changes.log -
编写脚本: 创建一个脚本
/usr/local/bin/log_ulimit.sh,内容如下:#!/bin/bash LOG_FILE="/var/log/ulimit_changes.log" USER=$1 SOFT_LIMIT=$2 HARD_LIMIT=$3 echo "$(date '+%Y-%m-%d %H:%M:%S') - User: $USER, Soft Limit: $SOFT_LIMIT, Hard Limit: $HARD_LIMIT" > > $LOG_FILE赋予脚本执行权限:
chmod +x /usr/local/bin/log_ulimit.sh -
修改 PAM 配置: 编辑
/etc/pam.d/system-auth或/etc/pam.d/login文件,添加以下行来调用脚本:session required pam_exec.so /usr/local/bin/log_ulimit.sh $PAM_USER $PAM_RLIMIT_SOFT_CORE $PAM_RLIMIT_HARD_CORE
方法三:使用 auditd 直接监控 ulimit 系统调用
你可以使用 auditd 直接监控 ulimit 系统调用,并将相关信息记录到日志文件中。
-
编辑审计规则: 编辑
/etc/audit/rules.d/audit.rules文件,添加以下规则:-a exit,always -F arch=b64 -S setrlimit -k ulimit_changes -a exit,always -F arch=b32 -S setrlimit -k ulimit_changes -
重启审计服务:
systemctl restart auditd
通过以上方法,你可以实现对 ulimit 更改的持久化记录。选择适合你需求的方法进行配置即可。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS ulimit日志记录配置方法
本文地址: https://pptw.com/jishu/761467.html
