ulimit -n不变 – values limits.conf没有任何作用

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

这个问题有点跟随这个问题。

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

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

这里是条目

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

pam_limits.so相关的pam_limits.so /etc/pam.d/中的所有相关文件中都未被注释,而fs.file-max已在/etc/sysctl.conf中正确设置

但是,我仍然看到

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

重启后。

可能是什么问题呢?

我的默认shell是/ bin / sh,我不能使用chsh来更改我的默认shell,因为我的用户在机器上是通过一些分布式身份validationscheme进行身份validation的。

在Redhat服务器上以root身份login

在/etc/security/limits.conf

 user01 - nofile 2048 

strace命令以根用户身份login

 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的其他值,检查你的shellconfiguration文件是@etherfish tell

我怀疑ulimit是由/ etc / profile或〜/ .bashrc应用的。 事实上,你的系统有一个复杂的帕姆,我会证实一些事情不会出错。

我还要确认/etc/security/limits.d/中没有错误的文件,正如pam_limits(8)中提到的那样。

我将debugging参数添加到会话所需的pam_limits.conf行,然后在您login时观看/var/log/auth.log。

如果你的软限制是1024,你的硬限制是什么?

su应该使用-l参数来给你一个新的,新的sulogin。

su -l -s / bin / bash

祝你好运。

我遇到了这样的问题,在这里我做了什么。

strace命令将打印进程与外部库进行的所有交互,所以可以看到我们的configuration是否被加载。

所以,我喜欢上面的build议:

 root:/etc/pam.d$ strace -o ~/loglimit su - glaudiston glaudiston:~$ exit logout root:/etc/pam.d$ cat ~/loglimit | grep limits.conf 

在我的问题中,strace日志(strace -o log su – username)没有任何限制文本的实例,所以文件limits.conf没有加载。

首先我确保pam_limits.so查找/etc/security/limits.conf

 root:/etc/pam.d$ strings /lib/security/pam_limits.so | grep limits.conf /etc/security/limits.conf 

所以,我确定模块pam_limits.so是在位于/etc/pam.d的文件中的auth操作中加载的…例如,在/etc/pam.d/su中,我添加了:

 session required pam_limits.so 

现在,我可以为我的用户创build一个“su”,限制将被加载。 你可以重做strace步骤来确定。

我的linux是一个LFS,所以我的错是在/etc/pam.d文件中缺lesspam_limits.so。 在其他发行版中,我不认为这是确切的问题。

但希望这有助于。

我有一个类似的问题,但只有SSHlogin。 本地login(通过控制台)尊重/etc/security/limits.conf

事实certificate,当你设置:

 UsePrivilegeSeparation yes 

/etc/ssh/sshd_config文件中,然后sshd派生一个非特权的孩子来设置帐户的env。 因为这个孩子是无特权的,所以pam_limits.so设置上限没有任何作用。

一旦我设定

 UsePrivilegeSeparation no 

/etc/ssh/sshd_configpopupSSH服务,然后使用SSHlogin来尊重limits.conf文件。