天天看点

redhat5.8- pam_limits资源调优限制

                                 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,如需转载请自行联系原作者

继续阅读