一、问题

Redhat 7系统,修改了/etc/security/limits.conf,未修改/etc/security/limits.d/20-nproc.conf

snippet.bash
[ff@test-4 ~]$ sudo vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536

重新登录ssh,但是查询ulimit -n还是默认值1024,修改未生效。

snippet.bash
[ff@test-4 ~]$ ulimit -n
1024

经查,ssh配置文件的UsePAM配置参数影响了上述值:

snippet.bash
[ff@test-4 ~]$ sudo vim /etc/ssh/sshd_config
UsePAM no

二、解决方法

方法

UsePAM no修改为UsePAM yes

注意:systemctl restart sshd.service 重启sshd服务,并重新登录ssh。

辟谣

有人说不改 UsePAM,但是在用户的.bashrc中加入ulimit -n 65536,来修改limit。经验证是不可行的,因为通过ulimit配置的参数值不能大于limits.conf的设定值。

snippet.bash
[ff@test-4 ~]$ ulimit -n 65536
-bash: ulimit: open files: cannot modify limit: Operation not permitted