操作系统: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: 资源暂时不可用