Estou tentando aumentar o descritor de arquivo aberto no máximo para todos os usuários em uma máquina ubuntu.
Esta questão é um pouco posterior a esta questão.
exceto que eu adicionei as entradas "raiz" necessárias no limits.conf
Aqui estão as entradas
* soft nofile 100000
* hard nofile 100000
root soft nofile 100000
root hard nofile 100000
As linhas relacionadas a pam_limits.so
não foram comentadas em todos os arquivos relevantes em /etc/pam.d/ e fs.file-max
foram definidas corretamente em /etc/sysctl.conf
No entanto, ainda vejo
abc@machine-2:/etc/pam.d$ ulimit -n
1024
após a reinicialização.
Qual poderia ser o problema?
Meu shell padrão é / bin / sh e não consigo usar o chsh para alterar meu shell padrão, pois o meu usuário na máquina é autenticado por meio de algum esquema de autenticação distribuído.
Respostas:
Eu tive um problema semelhante, mas apenas com logins SSH. Os logins locais (via console) respeitavam o
/etc/security/limits.conf
.Como se viu, quando você define:
no
/etc/ssh/sshd_config
arquivo, o sshd bifurca um filho não privilegiado para configurar o env da conta. Como esse filho não tem privilégios, o pam_limits.so definir limites superiores não teve efeito.Assim que eu definir
em
/etc/ssh/sshd_config
e saltou o serviço SSH, então o arquivo limits.conf foram respeitados nos logins SSH.fonte
UsePAM yes
. (+1 para mim apontando para sshd-config)Eu suspeito que o ulimit esteja sendo aplicado por um / etc / profile ou um ~ / .bashrc. O fato de o seu sistema ter um pam complicado, eu confirmaria que algo não está dando errado.
Também confirmo que não há um arquivo incorreto no /etc/security/limits.d/ sendo analisado como mencionado em pam_limits (8).
Eu adicionaria o parâmetro debug à linha pam_limits.conf da sessão necessária e depois observaria /var/log/auth.log enquanto você fazia login.
Se o seu limite flexível é 1024, qual é o seu limite rígido?
su deve fornecer um novo e novo login com su usando o argumento -l.
su -l -s / bin / bash
Boa sorte.
fonte
ulimit -Hn
No servidor Redhat conectado como root
/etc/security/limits.conf
comando strace registrado como root
com outro shell aberto loglimit
Eu desta maneira eu sei que, pam_limits foi carregado e limits.conf foi lido, se seus pam_limits foram carregados, mas você ainda vê outros valores usando ulimit -n, verifique seu perfil de shell como @etherfish disse
fonte
Eu estava com um problema como este, aqui o que eu fiz.
O comando strace imprimirá todas as interações que o processo está fazendo com bibliotecas externas, para que possamos ver se nossa configuração está carregada ou não.
Então, como sugerido acima:
No meu problema, o log de strace (strace -o log su - nome de usuário) não possui nenhuma instância de texto de limites; portanto, o arquivo limits.conf NÃO foi carregado.
Primeiro, verifique se o pam_limits.so procura pelo /etc/security/limits.conf
Portanto, verifique se o módulo pam_limits.so está carregado na operação de autenticação em arquivos localizados em /etc/pam.d ... por exemplo, em /etc/pam.d/su, adicionei:
Agora, posso criar um "su" para o meu usuário e os limites serão carregados. Você pode refazer a etapa de rastreamento para ter certeza.
Meu linux é um LFS, então a culpa é minha da ausência de pam_limits.so nos arquivos /etc/pam.d. Em outras distros, não acho que seja esse problema exato.
Mas espero que isso ajude.
fonte
No meu caso (Centos 6.10), o strace mostrou que depois que o limite foi definido em /etc/security/limits.conf, mais tarde no processo de login, ele foi redefinido em /etc/security/limits.d/90-nproc.conf para todos os usuários root:
fonte