Ich versuche, die maximale Anzahl offener Dateideskriptoren für alle Benutzer eines Ubuntu-Computers zu erhöhen.
Diese Frage ist eine Art Folgemaßnahme zu dieser Frage.
mit der Ausnahme, dass ich die erforderlichen "root" -Einträge in der limits.conf hinzugefügt habe
Hier sind die Einträge
* soft nofile 100000
* hard nofile 100000
root soft nofile 100000
root hard nofile 100000
pam_limits.so
Zugehörige Zeilen wurden in allen relevanten Dateien in /etc/pam.d/ nicht kommentiert und fs.file-max
in /etc/sysctl.conf korrekt gesetzt
Ich sehe jedoch immer noch
abc@machine-2:/etc/pam.d$ ulimit -n
1024
nach dem Neustart.
Woran könnte das liegen?
Meine Standard-Shell ist / bin / sh und ich kann chsh nicht verwenden, um meine Standard-Shell zu ändern, da mein Benutzer auf dem Computer über ein verteiltes Authentifizierungsschema authentifiziert wird.
Antworten:
Ich hatte ein ähnliches Problem, aber nur mit SSH-Anmeldungen. Lokale Anmeldungen (über die Konsole) respektierten die
/etc/security/limits.conf
.Wie sich herausstellte, wenn Sie einstellen:
In
/etc/ssh/sshd_config
file fordert sshd ein nicht privilegiertes Kind auf, die env des Kontos einzurichten. Da dieses Kind nicht privilegiert ist, hatte pam_limits.so das Festlegen von Obergrenzen keine Auswirkung.Sobald ich gesetzt habe
Beim
/etc/ssh/sshd_config
SSH-Dienst wurde ein Bounce ausgeführt, und anschließend wurde die Datei limits.conf mit SSH-Anmeldungen berücksichtigt.quelle
UsePAM yes
. (+1 für den Hinweis auf sshd-config)Ich vermute, das ulimit wird von einem / etc / profile oder einem ~ / .bashrc angewendet. Die Tatsache, dass Ihr System eine komplizierte PAM hat, würde ich bestätigen, dass etwas nicht schief geht.
Ich würde auch bestätigen, dass es keine fehlerhafte Datei in /etc/security/limits.d/ gibt, die wie in pam_limits (8) erwähnt analysiert wird.
Ich würde der für die Sitzung erforderlichen Zeile pam_limits.conf den Parameter debug hinzufügen und dann beim Anmelden /var/log/auth.log beobachten.
Wenn Ihre weiche Grenze 1024 ist, was ist Ihre harte Grenze?
su sollte Ihnen ein neues, frisches Login mit su mit dem Argument -l ermöglichen.
su -l -s / bin / bash
Viel Glück.
quelle
ulimit -Hn
Auf dem Redhat-Server als root angemeldet
/etc/security/limits.conf
Befehl strace als root angemeldet
mit anderen Shell offen loglimit
Auf diese Weise weiß ich, dass pam_limits geladen und limits.conf gelesen wurde. Wenn Ihre pam_limits geladen wurden, aber Sie mit ulimit -n noch andere Werte sehen, überprüfen Sie Ihr Shell-Profil, wie @etherfish sagte
quelle
Ich war mit einem Problem wie diesem hier, was ich getan habe.
Der Befehl strace gibt alle Interaktionen aus, die der Prozess mit externen Bibliotheken ausführt, sodass wir sehen können, ob unsere Konfiguration geladen ist oder nicht.
Also mache ich, wie oben vorgeschlagen:
In meinem Problem enthält das Strace-Protokoll (strace -o log su - Benutzername) keine Instanz von Limits-Text, daher wurde die Datei limits.conf NICHT geladen.
Zuerst stelle ich sicher, dass die Datei pam_limits.so nach /etc/security/limits.conf sucht
Also stelle ich sicher, dass das Modul pam_limits.so in der Auth-Operation in Dateien geladen wird, die sich unter /etc/pam.d befinden.
Jetzt kann ich meinem Benutzer ein "su" zuweisen und die Limits werden geladen. Sie können den Strace-Schritt wiederholen, um sicherzugehen.
Mein Linux ist ein LFS, also ist mein Fehler das Fehlen von pam_limits.so in /etc/pam.d Dateien. In anderen Distributionen glaube ich nicht, dass genau dies der Fall ist.
Aber ich hoffe das hilft.
quelle
In meinem Fall (Centos 6.10) zeigte Strace, dass nach dem Festlegen des Limits aus /etc/security/limits.conf später beim Anmeldevorgang dieses aus /etc/security/limits.d/90-nproc.conf für alle Nicht- Benutzer zurückgesetzt wurde -stammnutzer:
quelle