Das Aufrechterhalten von Leerlauf-Shell-Sitzungen auf einem Linux-Server ist möglicherweise ein Sicherheitsrisiko. Nicht zu vergessen, dass dies Systemressourcen verbrauchen würde.
Okay, vielleicht keine einzige Leerlaufsitzung, aber stellen Sie sich vor, Sie haben mehrere Benutzer, die remote auf dasselbe Linux-System zugreifen und ihre Sitzungen im Leerlauf lassen.
Als Linux-Systemadministrator können Sie sehen, welche Benutzer am System angemeldet sind und wie lange sie inaktiv waren.
Sie können den inaktiven Benutzer manuell rausschmeißen, aber das ist lästig und sicherlich nicht sehr produktiv.
Lassen Sie mich Ihnen zeigen, wie Sie inaktive Benutzer automatisch von ihrer Shell abmelden.
Methode 1:Verwenden Sie TMOUT, um Benutzer automatisch von Shell-Sitzungen im Leerlauf abzumelden
In Bash und anderen Shells können Sie den TMOUT
verwenden -Variable zum Festlegen der Leerlauf-Abmeldezeit. Wenn für diesen Zeitraum keine Aktivität des Benutzers erfolgt, wird die Shell-Sitzung geschlossen.
Prüfen Sie, ob TMOUT bereits gesetzt ist. Die Werte sind in Sekunden angegeben.
echo $TMOUT
Zum Testen können Sie es folgendermaßen verwenden:
TMOUT=300
Dadurch wird Ihre Terminalsitzung oder SSH-Sitzung nach 300 Sekunden, also 5 Minuten, geschlossen.
Bei SSH-Sitzungen sollten Sie eine Nachricht wie diese sehen:
[email protected]:~# timed out waiting for input: auto-logout
Connection to 212.125.89.175 closed.
Bei lokalen Sitzungen sollte Ihr Terminal automatisch geschlossen werden.
Aber Sie wissen wahrscheinlich bereits, dass dies nicht der beste Weg ist, eine Umgebungsvariable zu setzen. Sie können es entweder im Profil eines einzelnen Benutzers (oder Bash-Profils) oder systemweit für alle Benutzer aus /etc/profile.
festlegenAngenommen, Sie sind ein Systemadministrator und möchten inaktive Benutzer automatisch von Ihrem Linux-Server abmelden, stellen Sie dies auf Systemebene ein.
Öffnen Sie die Datei /etc/profile in einem Texteditor wie Vim oder Nano:
nano /etc/profile
Und fügen Sie die folgende Zeile hinzu:
TMOUT=300
Speichern und schließen Sie die Datei. Von nun an wird jeder Benutzer mit 5 Minuten Inaktivität automatisch abgemeldet.
Dies funktioniert sowohl für lokale als auch für Remotesitzungen. Wenn Sie es nur für SSH-Sitzungen festlegen möchten, können Sie die nächste Methode verwenden.
Methode 2:Benutzer automatisch von inaktiven SSH-Sitzungen abmelden
Sie können den SSH-Server so konfigurieren, dass er die Abmeldung eines Benutzers nach einer bestimmten Zeit der Inaktivität erzwingt.
Bearbeiten Sie die SSH-Konfigurationsdatei (/etc/ssh/sshd_config):
sudo nano /etc/ssh/sshd_config
Suchen Sie nach den folgenden zwei Variablen und entfernen Sie das # vor ihrer Startzeile und setzen Sie Werte wie folgt:
ClientAliveInterval 200
ClientAliveCountMax 3
Speichern und schließen Sie die Datei.
Das bedeutet, dass der Server dreimal alle 200 Sekunden eine Keep-Alive-Nachricht an den Client sendet. Wenn es keine Antwort erhält (was bedeutet, dass der Benutzer inaktiv ist), wird es die Sitzung nach 600 Sekunden (200 * 3) schließen.
Sie können basierend auf Ihren Anforderungen geeignete Werte auswählen.
Dies ist eine reine SSH-Methode und wirkt sich nicht auf die lokalen Shell-Sitzungen aus.
Ich hoffe, Sie finden diesen Linux-Tipp zum automatischen Abmelden von Benutzern hilfreich. Abonnieren Sie weitere Tipps für Linux-Systemadministratoren.