Reload /etc/security/limits.conf

7

Eu gostaria de:

  • faça um limite de 64 GB para a memória residente (para que os usuários inexperientes acabem com seus processos run-amok, mas usuários experientes podem aumentar o limite para processos com fome de memória)
  • aumenta o limite rígido para nofile, mas mantém o limite flexível em 1024 (portanto, se um determinado programa precisar de mais filehandles, o usuário pode concedê-los, mas os programas run-amok não os obterão).

Tanto quanto eu posso ver, eu deveria ser capaz de fazer isso em /etc/security/limits.conf (ou em /etc/security/limits.d/* ):

*        soft    rss             64000000
*        hard    nofile          50000
*        soft    nofile          1024

No entanto, não consigo encontrar uma maneira de recarregar esses valores sem reinicializar. Eu li que os valores são recarregados quando logar; funciona quando eu faço su - user , mas não funciona através de ssh user@localhost .

Eu tenho o pam_limits.so em /etc/pam.d:

/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

Eu tenho o PAM em sshd_config:

/etc/ssh/sshd_config:UsePAM yes

Eu sei que posso definir os valores usando ulimit e sysctl , mas gostaria de testar se o /etc/security/limits.conf está fazendo a coisa certa sem reinicializar.

Como posso ter certeza de que os valores estão sendo definidos quando as pessoas fazem login usando ssh sem reiniciar?

    
por Ole Tange 06.08.2012 / 13:54

2 respostas

3

Grrr ....

UseLogin não é necessário.

UsePAM yes é necessário.

A reinicialização de sshd só é necessária se UsePAM foi alterado de não para sim.

Desativar meu próprio ~/.ssh/config foi muito necessário!

Eu tinha Control * declarações no meu ~/.ssh/config que reutilizou o canal ssh e, portanto, eu não descobriria a mudança.

Obrigado a Samed Beyribey e quanta, cuja ajuda me deu a idéia de executar ssh -vv , que dá uma saída muito diferente quando você tem Control * instruções.

    
por 06.08.2012 / 20:38
2

I have read that the values are reloaded when logging in; it works when I do su - user but it does not work through ssh user@localhost.

O motivo é: por padrão, o SSH abre um shell que não é de login, portanto, os limites não estão sendo aplicados.

Para fazer isso, use um shell de login, edite seu arquivo sshd_config e remova o comentário / altere #UseLogin no para UseLogin yes :

gentoo ~ # grep UseLogin /etc/ssh/sshd_config 
#UseLogin no
gentoo ~ # sed -i.bak 's/#UseLogin no/UseLogin yes/' /etc/ssh/sshd_config 
gentoo ~ # grep UseLogin /etc/ssh/sshd_config 
UseLogin yes

Recarregue o sshd e tente novamente.

Fonte: link

    
por 06.08.2012 / 17:16

Tags