limits.conf文件實際上是linux PAM中pam_limits.so的配置文件,而且只針對於單個會話。
limits.conf的格式如下:
<domain> <type> <item> <value>
domain有好幾種格式,具體可以用man limits.conf來查看,不過一般來說,我們都是用的用戶名和組名的形式:username|@groupname
設置需要被限制的用戶名,組名前面加@和用戶名區別。也可以用通配符*來做所有的限制。
type:有soft,hard和-,soft指的是當前系統生效的設置值,軟限制也可以理解為警告值。hard表名系統中所能設定的最大值。soft的限制不能比hard限制高,用-表名同時設置了soft和hard的值。
item表明需要限制的使用資源類型
core 限制內核文件的大小
date 最大數據大小
fsize 最大文件大小
memlock 最大鎖定內存地址空間
nofile 打開文件的最大數目
rss 最大持久設置大小
stack 最大棧大小
cpu 以分鍾為單位的最多CPU時間
noproc 進程的最大數目
as 地址空間限制
maxlogins 此用戶允許登錄的最大數目
要是limits.conf文件配置生效,必須確保pam_limits.so文件被加入到啟動文件中,要查看/etc/pam.d/login文件中有session required /lib/security/pam_limits.so
ulimit命令,用於shell啟動進程所占用的資源限制
一般可以通過使用ulimit命令或者編輯/etc/security/limits.conf重新加載的方式來使限制生效。
通過ulimit比較直接,但只在當前的session有效,limits.conf中可以根據用戶和限制項使用戶在下次登錄中生效。對於limits.conf的設定是通過pam_limits.co的加載生效的,比如/etc/pam.d/sshd這樣通過ssh登錄時會加載limit又或者在/etc/pam.d/login加載生效。