加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Linux限制用户资源

(2014-02-28 17:16:45)
标签:

it

分类: linux
Linux限制用户资源,两种方法
一、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 的值。
硬限制和软限制区分:
1、软限制是实际限制对资源的使用(即资源使用不能超过软限制),硬限制的作用是控制软限制,不是限制资源使用。
2、硬限制设定后,设定软限制时只能是小于或等于硬限制。用户可以在已有的硬限制范围内,随意的更改自己的软限制
3、超级用户和普通用户都可以缩小硬限制,但超级用户可以扩大硬限制,普通用户则不能扩大硬限制.用户如果将硬限制设置在比原硬限制更小的范围内,那么他在当前shell内将没办法再将此硬限制恢复了,而管理员级别的用户可以随意多次更改硬限制。
  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
 
例如:修改文件描述符大小(65536)
vi  /etc/security/limits.conf 
 
*                               soft    nofile  65536
*                               hard    nofile  65536

limits.conf的工作原理

limits.conf的后端是这样工作的:limits.conf是pam_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

二、ulimit 命令用法

Bash
Bash内建了一个限制器"ulimit"。注意任何硬限制都不能设置得太高,因此如果你在/etc/profile或用户的.bash_profile (用户不能编辑或删除这些文件)中定义了限制规则,你就能对用户的Bash shell实施限制。这对于缺少PAM支持的LINUX旧发行版本是很有用的。你还必须确保用户不能改变他们的登录shell。限制的设置与PAM相似。例如:  

复制代码 代码如下:ulimit –sc 0
ulimit –su 100
ulimit –hu 150
http://www.ringkee.com/jims/read_folder/books/LinuxHackingExposed
Ulimit命令 设置限制  
可以把命令加到profile文件里,也可以在/etc/security/limits.conf文件中定义限制。
命令参数
-a      显示所有限制
-c      core文件大小的上限
-d      进程数据段大小的上限
-f      shell所能创建的文件大小的上限
-m     驻留内存大小的上限
-s      堆栈大小的上限
-t      CPU最大执行时间,以秒为单位,超过了进程会收到SIGKILL信号,停止。参看http://blog.yufeng.info/archives/2311
-p     管道大小
-n     打开文件数的上限
-u     进程数的上限
-v     虚拟内存的上限

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有