ulimit 是一个用于控制 shell 进程资源限制的命令行工具。通过使用 ulimit,你可以限制用户或进程可以使用的系统资源,从而提高系统的安全性和稳定性。以下是一些常见的 ulimit 设置,可以帮助提升系统安全性:
每个进程可以打开的文件描述符数量是有限的。过多的文件描述符可能会导致系统资源耗尽。
ulimit -n 4096
限制单个用户可以同时运行的进程数量,防止恶意用户或脚本消耗过多资源。
ulimit -u 1024
限制进程可以使用的CPU时间,防止长时间运行的进程占用过多CPU资源。
ulimit -t 3600
限制进程可以使用的最大内存量,防止内存溢出攻击。
ulimit -v 512000
限制进程的堆栈大小,防止堆栈溢出攻击。
ulimit -s 8192
限制核心转储文件的大小,防止生成过大的核心转储文件。
ulimit -c 0
限制管道缓冲区的大小,防止管道缓冲区溢出攻击。
ulimit -p 8192
限制单个文件的大小,防止创建过大的文件。
ulimit -f 1073741824
限制用户可以同时登录的shell进程数。
ulimit -n 10
限制用户可以创建的子进程数。
ulimit -u 1024
ulimit 设置在当前shell会话中有效。要使这些设置在系统重启后仍然有效,可以将这些命令添加到用户的 shell 配置文件中,例如 .bashrc 或 .bash_profile。
echo "ulimit -n 4096" >> ~/.bashrc
echo "ulimit -u 1024" >> ~/.bashrc
source ~/.bashrc
/etc/security/limits.conf 文件。通过合理使用 ulimit,可以有效地提升系统的安全性和稳定性。