一、背景介绍及问题处理

应用报账号不能ssh到主机,首先怀疑是防火墙或hosts.deny限制但查看之下并没有;接着使用其提供的账号密码确实不能登录,怀疑是密码被修改(有个和平时不太一样现像是输入密码后就会提示“Connection to 134.192.232.69 closed by remote host.Connection to 134.192.232.69 closed.”后直接退出,当时没在意现在回头看来是通过验证后主机发现用户资源超出了限制直接强制关闭了连接);其还没回复同意修改密码之前,其反复通过root也不能成功su到用户,提示“su: cannot set user id: Resource temporarily unavailable”,之前已检查过/etc/passwd和/etc/shadow文件用户信息格式正常,文件最后修改日期也已是老早以前,当即判断应该不是用户名密码的问题。

百度“su: cannot set user id: Resource temporarily unavailable”,查看之下大意是说用户资源使用超过了限制,但查看/etc/security/limits.conf和/etc/security/limits.d并没有看到对目标用户的限制,检查用户使用的资源似乎也都不多,判断不出是什么资源出了问题。直接对最常用的文件打开数、进程打开数和堆栈大小在/etc/security/limits.conf末尾追加了对目录用户的限制(之后分析应该是文件打开数问题)(username改为自目标用户):

username    soft    nofile
username hard nofile
username soft nproc
username hard nproc
username soft stack
username hard stack

追回完后保存不用其他操作,从root su和ssh都已正常。

二、资源限制查看的相关命令

ulimit -a    #查看当前用户资源限制
ps -ef |grep username | wc -l #统计用户进程开启数
lsof | grep username | wc -l #统计用户文件打开数

三、limis.conf格式说明

/etc/security/limits.conff配置格式如下:

<domain> <type> <item> <value>

domain代表限制的用户对象,可以是:用户名、@用户组名、*(表示所所有用户的默认配置)、%

type代表限制的资源类型,可以是:

hard--硬限制,受限用户不可自己通过ulimit动态修改此项的值

soft--软限制,用户自己可以自己使用ulimit加资源对应的参数动态修改此项的值(但其范围要在hard限制范围以内不然无效)

- --代表软硬两种限制

说明:所谓动态修改,就是如使徦ulimt -n 10240来将nofile临时修改为10240而不是通过修改limits.conf来修改,当然重启之后配置失效。使用ulimit -a来查看资源限制时有各资源对应的配置选项

item代表限制的具体资源,value代表该资源的限制值:

item 英文全称 中文译名 单位 value(默认值) 备注
core core file size 程序崩溃时产生的内存镜像文件 kb 0(表示不允许生成)  
data data size 数据段大小(?) kb unlimited  
fsize filesize 可打开文件的大小 kb unlimited  
memlock locked-in-memory address space 内存锁(?具体功能不很明白,数据库好像在意这个值) kb 64  
nofile number of open file 可打开文件数 1024  
rss resident set size 常驻内存大小(?) kb   2.4.30版本及以后内核已取消
stack stack size 堆栈段大小 kb 10240  
cpu cpu time 占用cpu时间(?) 分钟 unlimited  
nproc number of processes 可开启的进程数 1024  
as address space 地址空间 kb unlimited  
maxlogins max number of logins 同个用户最大登录数   此项无法限制root用户
maxsyslogins maximum number of all logins on system 系统所有用户登录总数   此项无法限制root用户
priority the priority to run user process with 用户所运行进程的优先级别      
locks locked files 占用文件个数(?) unlimited linux 2.4及之后版本才有
sigpending pending signals 等待信号数 11378 linux 2.6及之后版本才有
msgqueue memory used by POSIX message queues 信息队列 b 819200 linux 2.6及之后版本才有
nice nice priority allowed 谦让度     linux 2.6.12及之后版本才有
rtprio realtime priority 实时优先级(?)     linux 2.6.12及之后版本才有

说明:

1.关于资源限制/etc/security/limits.conf文件本身就有说明,也可查看帮助文件的说明:man limits.conf

2.除了priority和nice,其他项都支持使用-1、unlimited、infinity表示无限制

3.可以看到只有memlock、nofile、stack、nproc、sigpending等几项默认值不是unlimited,所以资源问题一般只关注这几项

4.RHEL6.x版本后引入/etc/security/limits.d/90-nproc.conf用于限制用户打开进程数,与limits.conf的关系是:

5.如果90-nproc.onf与limits.conf存在相同条目的配置那么90-nproc覆盖limits.conf的配置

6.但是如果90-nproc.conf用的是*没有指定用户而limits.conf指定用户那么90-nproc的限制不生效

7.其实90-nproc.conf除了限制nproc其他资源一样可以限制,生效原则与nproc一样

8.其实在/etc/security/limit.d目录下你还可以创建其他任意名字的.conf文件,这些文件中首字母ACSII大的覆盖首字母ASCII小的(首字母一样大的比较第二个字母以此类推)

http://blog.csdn.net/leshami/article/details/38982563

http://blog.csdn.net/taijianyu/article/details/5976319

http://bbs.chinaunix.net/thread-3689299-1-1.html

“su: cannot set user id: Resource temporarily unavailable”处理及limits.conf说明的更多相关文章

  1. su: cannot set user id: Resource temporarily unavailable

    今天R&D所在主机出现su: cannot set user id: Resource temporarily unavailable资源不可用报错,直接通过其他机器ssh huyuh@xxx ...

  2. su: cannot set user id: Resource temporarily unavailable问题解决

    操作环境 SuSE11sp1 问题现象 执行su - test命令切换失败,提示"su: cannot set user id: Resource temporarily unavailab ...

  3. su: cannot set user id: Resource temporarily unavailable【转】

    今天R&D所在主机出现su: cannot set user id: Resource temporarily unavailable资源不可用报错,直接通过其他机器ssh huyuh@xxx ...

  4. su切换用户报错cannot set user id: Resource temporarily unavailable

    su: cannot set user id: 资源暂时不可用   登录root su - tomcat 报错: cannot set user id: Resource temporarily un ...

  5. ssh连接报错Write failed: Broken pipe Resource temporarily unavailable

    问题描述 使用root连接服务器正常,切换普通用户连接报错 具体报错如下:Write failed: Broken pipe 或者:failed to execute /bin/bash: Resou ...

  6. error=11, Resource temporarily unavailable

    问题1:Cannot run program "/bin/ls": error=11, Resource temporarily unavailable 1 15/04/22 14 ...

  7. -bash: fork: retry: Resource temporarily unavailable;centos6.5

    Last login: Wed Jun 18 14:04:11 2014 from 1.1.1.135 -bash: fork: retry: Resource temporarily unavail ...

  8. failed to execute /bin/bash: Resource temporarily unavailable的问题处理

    [admin@localhost ~]$ sudo su - scloanLast login: Tue Jun 12 14:06:31 CST 2018 on pts/3su: failed to ...

  9. -bash: fork: retry: Resource temporarily unavailable

    登陆不了服务器The server refused to start a shell. 登陆服务器后执行ls命令报错:   1 2 $ls -bash: fork: retry: Resource t ...

随机推荐

  1. gcc 执行过程

    虽然我们称GCC是C语言的编译器,但使用gcc由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤∶预处理(也称预编译,Preprocessing).编译(Compi ...

  2. scss切页面

    html <div class="data-list"> <div class="data-list-item"> <div cl ...

  3. JDBC连接数据库的简单介绍

    休息10天后重新看了下jdbc,开始振作继续学习(休息10天主要是因为驾照考试太累,2333),希望自己能够调整好心态,继续对程序有着一如既往的喜爱(加油) Connection con=null; ...

  4. [原][粒子特效][spark]发射器emitter

    深入浅出spark粒子特效连接:https://www.cnblogs.com/lyggqm/p/9956344.html group添加emitter的方式: eimtter: 上图是spark源码 ...

  5. 《剑指offer》第六十五题(不用加减乘除做加法)

    // 面试题65:不用加减乘除做加法 // 题目:写一个函数,求两个整数之和,要求在函数体内不得使用+.-.×.÷ // 四则运算符号. #include <iostream> int A ...

  6. 关于前端SEO的一些常用知识总结

    Search English Optimization,搜索引擎优化,简称为SEO. (1)网站结构布局优化:尽量简单 1. 控制首页链接数量:首页链接不能太多,一旦太多,没有实质性的链接,很容易影响 ...

  7. Python 常见时间处理

    Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 时间间隔是以秒为单位的浮点小数. ...

  8. Eclipse安装lombok

    下载lombok 下载地址:https://projectlombok.org/downloads/lombok.jar 或者访问官网下载  https://projectlombok.org/ 安装 ...

  9. GRCh38基因组和注释文件探究

    ensembl/release91: cat Homo_sapiens.GRCh38.91.gtf | grep -v "#" | cut -f9 | cut -f1,3,6,8 ...

  10. 安卓中使用OkHttp发送数据请求的两种方式(同、异步的GET、POST) 示例-- Android基础

    1.首先看一下最终效果的截图,看看是不是你想要的,这个年代大家都很忙,开门见山很重要! 简要说下,点击不同按钮可以实现通过不同的方式发送OkHttp请求,并返回数据,这里请求的是网页,所以返回的都是些 ...