“打开文件” ulimit:通过 limits.conf 控制

“打开文件” ulimit:通过 limits.conf 控制

我为此绞尽脑汁,不明白为什么它不起作用。我希望有人能解释一下,或者给我一些调查途径的建议。

我有一个 Red Hat 7.3 系统(不要问),需要增加用户的打开文件限制wls81。我以为我只是无法控制它,但看起来似乎只有我需要更改的用户才有问题。我已将以下几行添加到/etc/security/limits.conf

wls81       soft    nofile      10100
wls81       hard    nofile      10240
madhatta    soft    nofile      10100
madhatta    hard    nofile      10240

pam_limits.so据我所知,被正确调用:

[madhatta@server madhatta]$ sudo grep limits /etc/pam.d/*
/etc/pam.d/login:session    required     /lib/security/pam_limits.so
/etc/pam.d/sshd:session    required     /lib/security/pam_limits.so
/etc/pam.d/su:session    required     /lib/security/pam_limits.so
/etc/pam.d/system-auth:session     required      /lib/security/pam_limits.so

当我以自己的身份 ssh 登录时,我获得了新的软限制,并且可以增加到硬限制:

desktop> ssh server
Last login: Thu May 10 13:20:13 2012 from a.b.c.d
[madhatta@server madhatta]$ ulimit -n 
10100
[madhatta@server madhatta]$ ulimit -n 10200
[madhatta@server madhatta]$ ulimit -n 
10200
[madhatta@server madhatta]$ ulimit -n 10300
bash: ulimit: cannot modify open files limit: Operation not permitted

但是当我以用户身份 ssh 登录时wls81,我无法:

desktop> ssh wls81@server
Last login: Wed May  9 22:29:33 2012 from a.b.c.d
[wls81@server wls81]$ ulimit -n
1024
[wls81@server wls81]$ ulimit -n 10000
bash: ulimit: cannot modify open files limit: Operation not permitted

我对每个用户都做了同样的事su -。老实说,我不明白为什么这个用户无法重置其ulimit帐户。有人有什么想法吗?

答案1

好吧,谜团解开了。我发现当我这样做时,su - wls81我得到了 1024 的限制,但当我刚刚这样做时,su wls81我得到了新的更高的限制。事实证明,wls81.bash_profile调用了另一个脚本,该脚本又调用了系统上完全不同的用户的环境设置脚本,该脚本执行了ulimit -n 1024.

当我删除该行时,wls81 现在获得了新的限制。

答案2

我认为您可能还需要检查并可能设置内核中打开文件的最大文件描述符:

sudo systcl fs.file-max

并编辑 /etc/sysctl.conf 以使更改永久生效。

相关内容