1.限制用户CPU使用资源

/etc/security/limits.conf   #主配置文件
/etc/security/limits.d/ #子模块配置文件

新建一个普通用户,并查看默认资源限制

[root@reddhat6_155_201 ~]# useradd admin
[root@reddhat6_155_201 ~]# ulimit -a
core file size (blocks, -c)
data seg size (kbytes, -d) unlimited
scheduling priority (-e)
file size (blocks, -f) unlimited
pending signals (-i)
max locked memory (kbytes, -l)
max memory size (kbytes, -m) unlimited #内存大小不限制
open files (-n)
pipe size ( bytes, -p)
POSIX message queues (bytes, -q)
real-time priority (-r)
stack size (kbytes, -s)
cpu time (seconds, -t) unlimited #cpu时间不限制
max user processes (-u)
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited exit #退出登录

设置admin用户使用CPU资源vim /etc/security/limits.conf

admin           soft     cpu                    #限制admin连续使用CPU不超过1分钟 最大不超过两分钟
admin hard cpu

切换至admin用户,查看可用资源限制

[root@reddhat6_155_200 ~]# su - admin
[admin@reddhat6_155_200 ~]$ ulimit -a
core file size (blocks, -c)
data seg size (kbytes, -d) unlimited
scheduling priority (-e)
file size (blocks, -f) unlimited
pending signals (-i)
max locked memory (kbytes, -l)
max memory size (kbytes, -m) unlimited
open files (-n)
pipe size ( bytes, -p)
POSIX message queues (bytes, -q)
real-time priority (-r)
stack size (kbytes, -s)
cpu time (seconds, -t) 60 #已经变为了60秒了 注意此处的单位
max user processes (-u)
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited exit #退出当前用户登录

使用dd命令测试 #超过一分钟后自动中断

使用top命令观察dd命令TIME使用时间

尝试自己调大CPU时间 #没有权限

但是可用调大至hard值的上限,即2分钟  #两分钟可以,超过一秒也不行

其他用户限制格式:

username  soft cpu    #指定用户 启动的程序最长只可以使用1分钟的CPU时间,soft警告 hard直接终止程序(重启程序后重新计时)
username hard cpu #也可以使用UID UID后面加:表示大于等于 还可以设置组名 格式为 @groupname
例:
admin hard cpu #admin用户硬限制CPU使用时间为1分钟
soft cpu #UID为500的用户软限制CPU使用时间为5分钟
: hard cpu #UID大于等于500的用户硬限制CPU使用时间为10分钟
@root hard cpu #root组用户硬限制CPU使用时间为20分钟

2.限制用户内存使用资源

内存限制有两个地方分别是:

[root@reddhat6_155_200 ~]# egrep "rss|as" /etc/security/limits.conf
# - rss - max resident set size (KB) #对应top命令中 RES 字段 驻留内存 系统实际分配给程序的内存大小
# - as - address space limit (KB) #对应top目录中 VIRT 字段 虚存地址空间 表示程序希望要多少内存 ******* 需要注意的是当前pam模块不支持RSS现在,只能通过as限制 ******

添加对admin用户内存的限制

[root@reddhat6_155_200 ~]# tail - /etc/security/limits.conf
admin hard as 262144 #对as限制 大小为 262144K 换算为256M

查看admin用户资源限制

[admin@reddhat6_155_200 ~]$ ulimit -a|grep "virtual memory"
virtual memory (kbytes, -v) 262144 #可以看到已经变为262144K了,默认不限制

3.限制用户进程数

配置普通用户打开进程数为1024

[root@reddhat6_155_200 ~]# tail /etc/security/limits.d/-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz # for reasoning. * soft nproc 1024 #普通用户限制进程数为1024
root soft nproc unlimited
[root@reddhat6_155_200 ~]# su - admin
[admin@reddhat6_155_200 ~]$ ulimit -u

使用shell bomb炸弹进行测试

[admin@reddhat6_155_200 ~]$ :(){ :|:& };:    #注意{}两边空格
[]
[admin@reddhat6_155_200 ~]$ -bash: fork: retry: 资源暂时不可用
-bash: fork: retry: 资源暂时不可用
-bash: fork: retry: 资源暂时不可用
-bash: fork: retry: 资源暂时不可用

centos6系统资源限制的更多相关文章

  1. Loadrunner 监控 Linux (centos6.5)服务器系统资源

    Loadrunner 监控 Linux 服务器系统资源,需要在被监控的服务器上启用 rstatd 进程但尝试启动时,爆炸了: [root@test1 rpc.rstatd-4.0.1]# rpc.rs ...

  2. CentOS6.5下docker的安装及遇到的问题和简单使用

    Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.利用Linux的LXC.AUFS.Go语言.cgroup实现了资源的独立,可以很轻松的实现文件.资 ...

  3. centos6.7下 编译安装MySQL5.7

    centos6.7下编译安装MySQL5.7 准备工作 #-----依赖包及MySQL和boost安装包----- #yum包安装: shell> yum -y install gcc-c++ ...

  4. centos6.5 64位静默安装oracle 10G R2

    操作系统:CentOS release 6.5 (Final) 64位 oracle版本:Oracle Database 10g Enterprise Edition Release 10.2.0.1 ...

  5. Centos6.5卸载图形化

    问题描述: Centos6.5想运行在非图形化状态,减小系统资源的开销!提升服务器性能....... 问题解决: 01.切换运行模式,变相实现非图形化运行 多用户模式 init 图形化模式 init ...

  6. 阿里云centos6.5实践编译安装LNMP架构web环境

    LNMP 代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构. 本次测试需求: **实践centos6.5编译安装 LNMP生产环境 架构 web生产环境 使用 ngx_pa ...

  7. Linux运维二:CentOS6.6系统安装后的基本配置与优化

    CentOS6.6系统安装完成后还需要做一些配置与优化: 一:Linux内核版本号介绍 查看内核版本: [root@Gin scripts]# uname -r 2.6.32-504.el6.x86_ ...

  8. Centos6.5下Oracle 11g R2安装过程

    1准备 CentOS-6.5-x86_64-bin-DVD1 linux_11gR2_database_1of2 linux_11gR2_database_2of2 VMware Workstatio ...

  9. CentOS6下docker的安装和使用

    CentOS6下docker的安装和使用 Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.利用Linux的LXC.AUFS.Go语言.cgroup ...

随机推荐

  1. nginx: [emerg] unknown directive “ ” in /usr/local/nginx/nginx.conf.conf:xx报错处理

    当我们在修改Nginx的配置文件,然后加载配置文件./nginx -s reload   报错类似的错误, nginx: [emerg] unknown directive “ ” in /usr/l ...

  2. PHP mysqli_kill MySQLi 函数

    mysqli_kill - 让服务器杀掉一个 MySQL 线程 语法:mysqli_kill ( mysqli $link , int $processid ) 本函数可以用来让服务器杀掉 proce ...

  3. push和pop的区别?

    1.push是什么?(推进) push就是推,延伸为推进.这个它是汇编的一个指令,(在其它语言中也可能会见到它).意思都是差不多的,就是把一个元素放入栈中.你可以假想栈是一个放光盘的那种盒子,有底没盖 ...

  4. hook declined to update refs/heads/dev

    提交一个项目,push的时候,报错: warning: Large files detected. remote: error: File TaodangpuAuction/TaodangpuAuct ...

  5. 【XML】XPath表达式

    XPath简介 XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言. XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力.起 ...

  6. 渗透测试学习 十九、 XSS跨站脚本漏洞详解 续2

    二阶注入环境搭建 74cms 3.4 直接将源码放在PHPstudy的www路径下,在地址栏中输入127.0.0.1回车 然后进入网站首页,在填写简历里面存在二阶注入 先注册一个账号 创建简历 前面的 ...

  7. ubuntu中输入arm-linux-gcc -v出现no such file or directory

    这个问题困扰了我差不多两天时间了,明明已经安装了arm-linux-gcc,且系统变量和用户变量都配置好了 但每次输入arm-linux-gcc -v都会出现如题所示错误.最终经过查到一个帖子有说是因 ...

  8. HttpContext.Current.Server.MapPath("") 未将对象设置到引用的

    在多线程中使用该方法获取目录报错:未将对象设置到引用 #region 上传图片到腾讯 public async Task<Result> UploadImageToWX(string ba ...

  9. golang中的接口

    CSDN找的一个网页,照着抄练一次. 差不多的使用场景都在了. package main import ( "fmt" ) type People interface { Retu ...

  10. 6、zabbix自定义监控

    一.概述 为什么需要自定义监控呢? 虽然zabbix已经给我们准备好了很多的模板,但是有的东西还是无法监控,这时候就要我们自定义监控了. 自定义监控的思路? 比如我们现在想要监控这个值,如下所示,模板 ...