在CentOS系統中,ulimit命令用于設置或獲取用戶進程的資源限制。通過合理配置ulimit,可以實現系統的安全控制,防止惡意或錯誤操作導致系統資源耗盡。以下是一些常見的ulimit配置方法和示例:
首先,你可以查看當前的資源限制:
ulimit -a
你可以單獨設置某個資源的限制,例如設置最大文件描述符數:
ulimit -n 4096
編輯 /etc/security/limits.conf 文件來設置所有用戶的資源限制:
sudo vi /etc/security/limits.conf
在文件中添加以下內容:
* soft nofile 4096
* hard nofile 8192
這將為所有用戶設置軟限制為4096,硬限制為8192。
如果你只想為特定用戶設置資源限制,可以在 /etc/security/limits.conf 文件中指定用戶名:
username soft nofile 4096
username hard nofile 8192
編輯 /etc/sysctl.conf 文件來設置系統級的資源限制:
sudo vi /etc/sysctl.conf
添加或修改以下內容:
fs.file-max = 100000
然后應用更改:
sudo sysctl -p
你可以在用戶的 .bashrc 或 .bash_profile 文件中設置會話級的資源限制:
echo "ulimit -n 4096" >> ~/.bashrc
source ~/.bashrc
使用 watch 命令監控資源使用情況:
watch -n 1 'ulimit -a'
pam_limits.so 模塊確保 /etc/pam.d/common-session 和 /etc/pam.d/common-session-noninteractive 文件中包含以下行:
session required pam_limits.so
限制用戶進程的最大CPU時間:
ulimit -u 0 # 禁止用戶創建新的子進程
ulimit -t 3600 # 限制用戶進程的最大CPU時間為1小時
限制用戶進程的最大內存使用:
ulimit -v 524288000 # 限制用戶進程的最大內存使用為500MB
通過以上方法,你可以根據實際需求對CentOS系統進行資源限制,從而提高系統的安全性和穩定性。