Pam_limits資源調優限制
pam_limits 資源限制子產品(提供的管理組:session)
為使用此子產品, 系統管理者必須首先建立一個 root隻讀的檔案(預設是/etc/security/limits.conf). 這檔案描述了superuser想強迫使用者和使用者組的資源限制. uid=0的帳号不會受限制.
以下參數可以用來改變此子產品的行為:
*debug - 往syslog(3)寫入冗長的記錄.
*conf=/path/to/file.conf - 指定一個替換的limits設定檔.
設定檔的每一行描述了一個使用者的限制,以下面的格式:
<domain> <type> <item><value>
上面列出的欄位可以填下面的值:...
<domain> 可以是:
*一個使用者名
*一個組名,文法是@group
*通配符*, 定義預設條目
<type> 可以有一下兩個值:
*hard 為施行硬資源限制. 這些限制由superuser設定,由Linux核心施行. 使用者不能提升他對資源的需求到大于此值.
*soft 為施行軟資源限制. 使用者的限制能在軟硬限制之間上下浮動. 這種限制在普通用法下可以看成是預設值.
<item> 可以是以下之一:
*core - 限制core檔案的大小(KB)
*data - 最大的資料大小 (KB)
*fsize - 最大的檔案尺寸 (KB)
*memlock - 最大能鎖定的記憶體空間(KB)
*nofile - 最多能打開的檔案
*rss - 最大的駐留程式大小(KB)
*stack - 最大的堆棧尺寸(KB)
*cpu - 最大的CPU 時間(分鐘)
*nproc - 最多的程序數
*as - 位址空間的限制
*maxlogins - 使用者的最多登入數
*priority - 使用者程序執行時的優先級
要完全不限制使用者(或組), 可以用一個(-)(例如: ``bin -'',``@admin -''). 注意,個體的限制比組限制的優先級高, 是以如果你設定admin組不受限制, 但是組中的某個成員被設定檔中某行限制, 那麼此使用者就會依據這樣被限制.還應該注意, 所有的限制設定隻是每個登入的設定. 他們既不是全局的,也不是永久的 ; 之存在于會話期間.
pam_limits 子產品會通過syslog(3)報告它從設定檔中找到的問題.
下面配置檔案執行個體:
# EXAMPLE /etc/security/limits.conf file:
# =======================================
# <domain> <type> <item><value>
* soft core 0
* hard rss 10000
@student hard nproc 20
@faculty soft nproc 20
@faculty hard nproc 50
ftp hard nproc 0
注意, 對同一個資源的軟限制和硬限制 - 這建立了使用者可以從指定服務會話中得到的預設和最大允許的資源數.
限制使用者登入次數
/etc/security/limits.conf
# vim /etc/pam.d/login
session required pam_limits.so
# vim /etc/security/limits.conf
hulk hard maxlogins 2
限制使用者打開程序數
hulk hard nproc 3
# useradd hulk
# echo "123456" | passwd --stdinhulk
# su - hulk
$ sleep 3000 &
[1] 4650
[2] 4651
-bash: fork: retry: Resource temporarilyunavailable
限制使用者使用CPU時間
hulk hard cpu 1
$ ./a.sh 腳本執行1分鐘後
Killed
限制使用者建立檔案大小
hulk hard fsize 500
$ dd if=/dev/zero of=file1 bs=1M count=1
File size limit exceeded (core dumped)
本文轉自潘闊 51CTO部落格,原文連結:http://blog.51cto.com/pankuo/1392503,如需轉載請自行聯系原作者