即使需要 pam_limits.so,ulimit 也不会读取打开文件描述符 limits.conf 设置

即使需要 pam_limits.so,ulimit 也不会读取打开文件描述符 limits.conf 设置

我正在尝试提高 ubuntu 机器上所有用户的打开文件描述符最大值。

我已将以下几行添加到/etc/security/limits.conf

*               soft    nofile           100000
*               hard    nofile           100000

并且,基于这个问题我已检查/etc/pam.conf以下设置pam_limits

$ grep "pam_limits" /etc/pam.d/*
/etc/pam.d/atd:session    required   pam_limits.so
/etc/pam.d/common-session:session required pam_limits.so
/etc/pam.d/cron:session    required   pam_limits.so
/etc/pam.d/login:session    required   pam_limits.so
/etc/pam.d/sshd:session    required     pam_limits.so
/etc/pam.d/su:session    required   pam_limits.so
/etc/pam.d/sudo:session required pam_limits.so

而且我的 file-max 似乎没问题:

$ cat /proc/sys/fs/file-max 
762659

但当我检查时,我仍然有默认的 1024 ulimit -a

$ ulimit -a | grep files
open files                      (-n) 1024

我还可以检查什么?

答案1

我发现系统似乎不喜欢 中的用户通配符limits.conf。将其更改为:root soft nofile 100000并且root hard nofile 100000工作正常。

答案2

添加另一个答案,因为尽管 bantic 解决了他的问题,但我们的设置和症状完全相同。limits.conf 中 nofile 的软和硬 ulimit 设置为 100000。/etc 下或用户主目录中的用户没有覆盖或其他 ulimit 设置,但 ulimit 很低。硬 ulimit 为 4096,软 ulimit 为 1024。

Centos 7。

实际上,如果您以用户身份 su,则添加带有软 nofile 100000 和硬 nofile 100000 的 /etc/security/limits.d/20-nofile.conf 似乎可以解决问题,但如果您以用户身份 ssh 登录,则无法解决问题。

最终我们在 /etc/ssh/sshd_config 中找到了 UsePAM: no,将其更改为 UsePAM: yes,然后重新启动 sshd 服务便解决了这个问题。

相关内容