limits.conf 檔案實際是 Linux PAM(插入式認證子產品,Pluggable Authentication Modules)中 pam_limits.so 的配置檔案,而且隻針對于單個會話。
limits.conf的格式如下:
username|@groupname type resource limit
username|@groupname:設定需要被限制的使用者名,組名前面加@和使用者名差別。也可以用通配符*來做所有使用者的限制。
type:有 soft,hard 和 -,soft 指的是目前系統生效的設定值。hard 表明系統中所能設定的最大值。soft 的限制不能比har 限制高。用 - 就表明同時設定了 soft 和 hard 的值。
resource:
core - 限制核心檔案的大小
date - 最大資料大小
fsize - 最大檔案大小
memlock - 最大鎖定記憶體位址空間
nofile - 打開檔案的最大數目
rss - 最大持久設定大小
stack - 最大棧大小
cpu - 以分鐘為機關的最多 CPU 時間
noproc - 程序的最大數目
as - 位址空間限制
maxlogins - 此使用者允許登入的最大數目
要使 limits.conf 檔案配置生效,必須要確定 pam_limits.so 檔案被加入到啟動檔案中。檢視 /etc/pam.d/login 檔案中有:
ls /lib/security/pam_limits.so
如果不作限制,可能一行代碼就讓你很慘了,甚至需要你重新開機一下。
你可以把下面這行代碼複制粘貼到終端裡執行測試一下是否需要限制
:(){ :|:; }; :
例如我的:
* soft core 0
* hard rss 102400
truth soft nproc 2047
truth hard nproc 16384
truth soft nofile 1024
truth hard nofile 65536
truth hard cpu 10
同時編輯
sudo gedit /etc/pam.d/login
加入
#禁止調試檔案
session required /lib/security/pam_limits.so
系統重新開機後可嘗試 :(){ :|:; }; :
這時會出現bash: fork: 資源臨時不可用