Laden Sie /etc/security/limits.conf neu

7

Ich würde gerne:

  • Legen Sie ein weiches 64-GB-Limit für residenten Speicher fest (damit unerfahrene Benutzer ihre Run-Amok-Prozesse beenden, erfahrene Benutzer können jedoch das Limit für speicherhungrige Prozesse erhöhen).
  • Erhöhen Sie das Hard-Limit für Nofile, aber halten Sie das Soft-Limit bei 1024 (wenn ein bestimmtes Programm mehr Dateihandles benötigt, kann der Benutzer diese gewähren, Run-Amok-Programme erhalten sie jedoch nicht).

Soweit ich sehen kann, sollte ich das in /etc/security/limits.conf(oder in /etc/security/limits.d/*) tun können :

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

Ich kann jedoch keine Möglichkeit finden, diese Werte ohne Neustart neu zu laden. Ich habe gelesen, dass die Werte beim Anmelden neu geladen werden. es funktioniert, wenn ich es tue, su - useraber es funktioniert nicht durch ssh user@localhost.

Ich habe die pam_limits.so in /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

Ich habe PAM in sshd_config:

/etc/ssh/sshd_config:UsePAM yes

Ich weiß, dass ich die Werte mit ulimitund einstellen kann sysctl, aber ich möchte testen, ob das /etc/security/limits.confdas Richtige tut, ohne neu zu starten.

Wie kann ich sicherstellen, dass die Werte festgelegt werden, wenn sich Benutzer mit ssh anmelden, ohne neu zu starten?

Ole Tange
quelle
Haben Sie "UsePAM no" in sshd_config? Das kann das Problem verursachen.
Samed Beyribey
Meine / etc / ssh / sshd_config hat UsePAM yes. Gute Vermutung.
Ole Tange
Können Sie versuchen, den SSH-Dämon neu zu starten und dann festzustellen, ob Benutzer die neuen Grenzwerte sehen?
pkhamre

Antworten:

3

Grrr ....

UseLogin wird nicht gebraucht.

UsePAM yes wird gebraucht.

Ein Neustart von sshdist nur erforderlich, wenn UsePAMvon Nein auf Ja geändert wurde.

Das Deaktivieren meiner eigenen ~/.ssh/configwar sehr wichtig!

Ich hatte Control* Anweisungen in meinem, ~/.ssh/configdie den ssh-Kanal wiederverwendeten, und daher würde ich die Änderung nicht entdecken.

Vielen Dank an Samed Beyribey und quanta, deren Hilfe mir die Idee gab, etwas auszuführen, ssh -vvdas bei Control* -Anweisungen sehr unterschiedliche Ergebnisse liefert .

Ole Tange
quelle
2

Ich habe gelesen, dass die Werte beim Anmelden neu geladen werden. es funktioniert, wenn ich es tue, su - useraber es funktioniert nicht durch ssh user@localhost.

Der Grund ist: Standardmäßig öffnet SSH eine Shell ohne Anmeldung, sodass keine Beschränkungen angewendet werden.

Um eine Login-Shell zu verwenden, bearbeiten Sie Ihre sshd_configDatei und kommentieren / ändern Sie sie #UseLogin nozu 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

Laden Sie das neu sshdund versuchen Sie es erneut.

Quelle: http://znx.no/2011/01/ssh-and-limits/

Quanten
quelle