su: 无法设置用户ID: 资源暂时不可用

操作系统:CentOS 6.x

切换到普通用户的时候报错:su: 无法设置用户ID: 资源暂时不可用

 

今天在使用su切换用户doiido的的时候,出现了如下报错:

[root@lmps185 ~]# su - app
su: 无法设置用户ID: 资源暂时不可用

同时使用SecureCRT等远程SSH工具均无法使用doiido用户连接。
查找相关资料,发现是在CentOS 6中,存在/etc/security/limits.d/90-nproc.config文件,此文件限制了普通权限用户的最大线程数,当此用户的最大线程数max user processes到达最高限制数,就无法连接登录。因此在无法减少线程的情况下只能修改此参数,具体修改方法如下:

1 查看max user processes

[root@lmps185 ~]# su - app
su: 无法设置用户ID: 资源暂时不可用

[root@lmps185 ~]# ulimit -u
1024

由此可以看出最大线程数为1024

2 修改max user processes

 

2.1 修改90-nproc.conf

vim /etc/security/limits.d/90-nproc.conf
[root@lmps185 ~]# vim /etc/security/limits.d/90-nproc.conf
* soft nproc 1024       #所有用户限制为1024 root soft nproc unlimited  #root用户不限制

修改为

* soft nproc 65535           #所有用户限制为65535

root soft nproc unlimited   #root用户不限制

app soft nproc unlimited      #app用户不限制

上面可以看除了root用户外的所有用户均限制为1024,因此通过可以注释此行或者将值改大来解决该问题

修改完成后保存退出,这样的修改是立马生效的(经测试成功)

2.2 修改/etc/security/limits.conf文件

 

vim /etc/security/limits.conf
增加如下内容:所有用户限制为65535
*               soft    nproc           65535
*               hard    nproc           65535
*               soft    nofile          65535
*               hard    nofile          65535

 

也可以直接给对应的应用加,根据个人情况

# cat /etc/security/limits.conf
app  soft    nproc  65535
app  hard   nproc  65535
app  soft    nofile  65535
app  hard   nofile  65535

 

注:在CentOS 5中无此文件

 

 

[root@lmps185 ~]# su - app
[lakala@lmps185 ~]$ ls
-bash: fork: retry: 资源暂时不可用

 

上一篇:java – JSch – 如何以我切换到的用户发出命令


下一篇:【转】Android root检测方法总结