Pregunta:
Me gustaría:
- establezca un límite suave de 64 GB para la memoria residente (para que los usuarios sin experiencia terminen sus procesos enloquecidos, pero los usuarios experimentados pueden aumentar el límite para los procesos que consumen mucha memoria)
- aumente el límite estricto para nofile, pero mantenga el límite flexible en 1024 (por lo que si un programa determinado necesita más identificadores de archivo, el usuario puede otorgarlos, pero los programas run-amok no los obtendrán).
Por lo que puedo ver, debería poder hacer eso en /etc/security/limits.conf
(o en /etc/security/limits.d/*
):
* soft rss 64000000
* hard nofile 50000
* soft nofile 1024
Sin embargo, no puedo encontrar una manera de recargar estos valores sin reiniciar. He leído que los valores se recargan al iniciar sesión; funciona cuando hago su - user
pero no funciona a través de ssh user@localhost
.
Tengo pam_limits.so en /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
Tengo PAM en sshd_config:
/etc/ssh/sshd_config:UsePAM yes
Sé que puedo establecer los valores usando ulimit
y sysctl
, pero me gustaría probar que /etc/security/limits.conf
está haciendo lo correcto sin reiniciar.
¿Cómo puedo asegurarme de que se establezcan los valores cuando las personas inician sesión usando ssh sin reiniciar?
Respuesta:
Grrr ….
UseLogin
no es necesario.
UsePAM yes
es necesario.
Solo es necesario reiniciar sshd
si UsePAM
se cambió de no a sí.
¡La desactivación de mi propio ~/.ssh/config
era muy necesaria!
Tenía declaraciones de Control
* en mi ~/.ssh/config
que reutilizaban el canal ssh y, por lo tanto, no descubriría el cambio.
Gracias a Samed Beyribey y quanta, cuya ayuda me dio la idea de ejecutar ssh -vv
que da una salida muy diferente cuando tienes declaraciones de Control
*.