ulimit -n 未改变 - limits.conf 值无效

ulimit -n 未改变 - limits.conf 值无效

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

这个问题在某种程度上是对这个问题的后续。

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

除了我在 limits.conf 中添加了所需的“root”条目

以下是参赛作品

*               soft    nofile           100000
*               hard    nofile           100000
root            soft    nofile           100000
root            hard    nofile           100000

/etc/pam.d/ 中所有相关文件中的相关行pam_limits.so均已取消注释,并fs.file-max已在 /etc/sysctl.conf 中正确设置

然而,我仍然看到

abc@machine-2:/etc/pam.d$ ulimit -n
1024

重启后。

可能是什么问题呢?

我的默认 shell 是 /bin/sh,并且我不能使用 chsh 来更改我的默认 shell,因为我的机器上的用户是通过某种分布式身份验证方案进行身份验证的。

答案1

我遇到了类似的问题,但仅限于 SSH 登录。本地登录(通过控制台)尊重/etc/security/limits.conf

事实证明,当您设置:

UsePrivilegeSeparation yes

/etc/ssh/sshd_config文件中,然后 sshd 派生一个无特权的子进程来设置帐户的环境。由于此子进程没有特权,因此 pam_limits.so 设置上限无效。

我一设定

UsePrivilegeSeparation no

/etc/ssh/sshd_config重新启动 SSH 服务,然后 limits.conf 文件就会受到 SSH 登录的尊重。

答案2

在以 root 身份登录的 Redhat 服务器上

/etc/security/limits.conf

user01  -       nofile  2048

strace 命令以 root 身份记录

strace -o loglimit su - user01

用其他shell打开loglimit

grep "limit" loglimit
open("/lib64/security/pam_limits.so", O_RDONLY) = 6
 ..........
 ..........
 open("/etc/security/limits.conf", O_RDONLY) = 3
 read(3, "# /etc/security/limits.conf\n#\n#E"..., 4096) = 1823
 open("/etc/security/limits.d", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3
 setrlimit(RLIMIT_NOFILE, {rlim_cur=2*1024, rlim_max=2*1024}) = 0

这样我就知道,pam_limits 已加载并且 limits.conf 已读取,如果您的 pam_limits 已加载但您仍然使用 ulimit -n 看到其他值,请按照@etherfish 所说的检查您的 shell 配置文件

答案3

我怀疑 ulimit 是由 /etc/profile 或 ~/.bashrc 应用的。事实上,您的系统有一个复杂的 pam,我想确认一下没有出现问题。

我还要确认 /etc/security/limits.d/ 中没有被解析的错误文件,如 pam_limits(8) 中所述。

我会将调试参数添加到会话所需的 pam_limits.conf 行,然后在您登录时观察 /var/log/auth.log。

如果您的软限制是 1024,那么您的硬限制是多少?

su 应该会让您使用 -l 参数通过 su 获得一个全新的登录。

苏-l-s / bin / bash

祝你好运。

答案4

在我的例子中(Centos 6.10),strace 显示在设置限制后/etc/security/limits.conf在登录过程中,它被重置为/etc/security/limits.d/90-nproc.conf对于所有非 root 用户:

*          soft    nproc     1024
root       soft    nproc     unlimited

相关内容