在CentOS系统中,ulimit
命令用于设置或获取用户进程的资源限制。通过合理配置ulimit
,可以实现系统的安全控制,防止恶意或错误操作导致系统资源耗尽。以下是一些常见的ulimit
配置方法和示例:
1. 查看当前资源限制
首先,你可以查看当前的资源限制:
ulimit -a
2. 设置单个资源限制
你可以单独设置某个资源的限制,例如设置最大文件描述符数:
ulimit -n 4096
3. 设置所有用户的资源限制
编辑 /etc/security/limits.conf
文件来设置所有用户的资源限制:
sudo vi /etc/security/limits.conf
在文件中添加以下内容:
* soft nofile 4096 * hard nofile 8192
这将为所有用户设置软限制为4096,硬限制为8192。
4. 设置特定用户的资源限制
如果你只想为特定用户设置资源限制,可以在 /etc/security/limits.conf
文件中指定用户名:
username soft nofile 4096 username hard nofile 8192
5. 设置系统级的资源限制
编辑 /etc/sysctl.conf
文件来设置系统级的资源限制:
sudo vi /etc/sysctl.conf
添加或修改以下内容:
fs.file-max = 100000
然后应用更改:
sudo sysctl -p
6. 设置会话级的资源限制
你可以在用户的 .bashrc
或 .bash_profile
文件中设置会话级的资源限制:
echo "ulimit -n 4096" >> ~/.bashrc source ~/.bashrc
7. 监控资源使用情况
使用 watch
命令监控资源使用情况:
watch -n 1 'ulimit -a'
8. 使用 pam_limits.so
模块
确保 /etc/pam.d/common-session
和 /etc/pam.d/common-session-noninteractive
文件中包含以下行:
session required pam_limits.so
示例:限制CPU时间
限制用户进程的最大CPU时间:
ulimit -u 0 # 禁止用户创建新的子进程 ulimit -t 3600 # 限制用户进程的最大CPU时间为1小时
示例:限制内存使用
限制用户进程的最大内存使用:
ulimit -v 524288000 # 限制用户进程的最大内存使用为500MB
通过以上方法,你可以根据实际需求对CentOS系统进行资源限制,从而提高系统的安全性和稳定性。