Chinaunix首页 | 论坛 | 博客
  • 博客访问: 606092
  • 博文数量: 66
  • 博客积分: 4015
  • 博客等级: 上校
  • 技术积分: 1667
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-30 11:18
文章分类

全部博文(66)

文章存档

2010年(1)

2008年(65)

我的朋友

分类: LINUX

2008-04-24 13:06:00

 

Linux limits.conf解释与应用


limits.conf 文件实际是 Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,而且只针对于单个会话。


一:limits.conf的格式如下:

username|@groupname type resource limit


username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。


type:有 softhard-soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同时设置了 softhard 的值。


resource

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


二:limits.conf的工作原理:

limits.conf的后端是这样工作的:limits.confpam_limits.so的配置文件,然后/etc/pam.d/下的应用程序调用pam_***.so模块。譬如说,当用户访问服务器,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个对应的服务文件,然后根据服务文件的内容选择具体的PAM模块进行处理。


:限制admin用户登录到sshd的服务不能超过2

/etc/pam.d/sshd 中添加 session required pam_limits.so

/etc/security/limits.conf中添加 admin - maxlogins 2

查看应用程序能否被PAM支持,用ldd


三:limits.conf文件的参数

Limits.conf文件的参数可以设置成以下两种形式之一:

暂时地,适用于通过 ulimit 命令登录 shell 会话期间。

永久地,通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件之一(例如 ~/.profile),即特定于 shell 的用户资源文件;或者通过编辑 /etc/security/limits.conf

1.core - 限制内核文件的大小

何谓core文件,当一个程序崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。 core文件是个二进制文件,需要用相应的工具来分析程序崩溃时的内存映像。

系统默认core文件的大小为0,所以没有创建。可以用ulimit命令查看和修改core文件的大小。

$ulimit -c

0

$ ulimit -c 1000

$ ulimit -c

1000

-c 指定修改core文件的大小,1000指定了core文件大小。也可以对core文件的大小不做限制,如:

# ulimit -c unlimited

#ulimit -c

unlimited

如果想让修改永久生效,则需要修改配置文件,如 .bash_profile/etc/profile/etc/security/limits.conf

2.nofile - 打开文件的最大数目

对于需要做许多套接字连接并使它们处于打开状态的应用程序而言,最好通过使用 ulimitn,或者通过设置nofile 参数,为用户把文件描述符的数量设置得比默认值高一些.


阅读(2583) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~