Dieses kurze Tutorial erklärt drei verschiedene Möglichkeiten, inaktive Benutzer nach einer bestimmten Zeit in Linux- und Unix-ähnlichen Systemen automatisch abzumelden.
Stellen Sie sich dieses Szenario vor. Sie verwalten einen gemeinsam genutzten Server, auf den regelmäßig viele Benutzer von allen Systemen im Netzwerk zugreifen.
Es besteht die Möglichkeit, dass einige Benutzer vergessen, sich von seiner Sitzung abzumelden, und die Sitzung offen gelassen haben. Es ist gefährlich, eine Benutzersitzung offen zu lassen, und einige Benutzer können sie absichtlich missbrauchen.
Würden Sie jedes einzelne System manuell überprüfen, um festzustellen, ob sich die Benutzer abgemeldet haben oder nicht? Es ist nicht notwendig! Außerdem ist es eine ziemlich zeitaufwändige Aufgabe, wenn es Hunderte von Computern in Ihrem Netzwerk gibt.
Stattdessen können Sie einen Benutzer dazu bringen, sich nach einem bestimmten Zeitraum der Inaktivität automatisch von einer lokalen oder SSH-Sitzung abzumelden.
Automatische Abmeldung inaktiver Benutzer unter Linux
Wir können inaktive Benutzersitzungen nach einer bestimmten Zeit auf drei Arten automatisch abmelden. Sehen wir uns die erste Methode an.
Methode 1:
Bearbeiten Sie ~/.bashrc
oder ~/.bash_profile
Datei:
$ nano ~/.bashrc
Oder,
$ nano ~/.bash_profile
Fügen Sie am Ende die folgende Zeile hinzu:
TMOUT=100
Benutzer-Timeout-Wert in Linux konfigurieren
Dadurch wird der Benutzer nach einer Inaktivität von 100 Sekunden automatisch abgemeldet. Sie können diesen Wert nach Belieben definieren. Drücken Sie ESC
und geben Sie :wq
ein um die Datei zu speichern und zu schließen.
Wenden Sie die Änderungen an, indem Sie den folgenden Befehl ausführen:
$ source ~/.bashrc
Oder,
$ source ~/.bash_profile
Lassen Sie die Sitzung jetzt 100 Sekunden lang im Leerlauf. Nach einer Inaktivität von 100 Sekunden sehen Sie die folgende Meldung und der Benutzer wird automatisch von der Sitzung abgemeldet.
timed out waiting for input: auto-logout Connection to 192.168.122.181 closed.
Inaktive Benutzer unter Linux automatisch abmelden
Diese Einstellung kann vom Benutzer leicht geändert werden. Denn ~/.bashrc
Datei gehört dem Benutzer selbst.
Um die Timeout-Einstellungen zu ändern oder zu löschen, löschen Sie einfach die oben hinzugefügten Zeilen und wenden Sie die Änderungen an, indem Sie den folgenden Befehl ausführen:
$ source ~/.bashrc
Alternativ kann der Benutzer dies deaktivieren, indem er die folgenden Befehle ausführt:
$ export TMOUT=0
Oder,
$ unset TMOUT
Da die Timeout-Einstellung in der benutzereigenen ~/.bashrc
gespeichert ist Datei kann er/sie sie leicht umgehen, indem er/sie einfach die Zeile löscht. Wenn Sie verhindern möchten, dass der Benutzer die Einstellungen ändert, folgen Sie der zweiten Methode.
Methode 2:
Melden Sie sich als root
an Benutzer.
Erstellen Sie eine neue Datei namens "autologout.sh"
.
# vi /etc/profile.d/autologout.sh
Fügen Sie die folgenden Zeilen hinzu:
TMOUT=100 readonly TMOUT export TMOUT
Speichern und schließen Sie die Datei.
Machen Sie es mit dem Befehl ausführbar:
# chmod +x /etc/profile.d/autologout.sh
Melden Sie sich ab oder starten Sie Ihr System neu, damit die Änderungen wirksam werden.
Der inaktive Benutzer wird automatisch nach 100 Sekunden abgemeldet. Der normale Benutzer kann diese Einstellungen nicht ändern, auch wenn er in der Sitzung angemeldet bleiben möchte. Sie werden genau nach 100 Sekunden ausgeworfen.
Diese beiden Methoden gelten sowohl für lokale Sitzungen als auch für Remote-Sitzungen, d. h. die lokal angemeldeten Benutzer oder die Benutzer, die von einem Remote-System über SSH angemeldet sind.
In der nächsten Methode werden wir sehen, wie man automatisch nur die inaktiven SSH-Sitzungen abmeldet, nicht lokale Sitzungen.
Methode 3:
Bei dieser Methode veranlassen wir die Benutzer der SSH-Sitzung nur dazu, sich nach einer bestimmten Zeit der Inaktivität abzumelden.
Bearbeiten Sie /etc/ssh/sshd_config
Datei:
$ sudo vi /etc/ssh/sshd_config
Folgende Zeilen hinzufügen/ändern:
ClientAliveInterval 100 ClientAliveCountMax 0
Drücken Sie ESC
drücken und :wq
eingeben um diese Datei zu speichern und zu schließen. Starten Sie den sshd-Dienst neu, um die Änderungen zu übernehmen.
$ sudo systemctl restart sshd
Jetzt ssh von einem entfernten System zu diesem System. Nach 100 Sekunden wird die SSH-Sitzung automatisch geschlossen und Sie sehen die folgende Meldung:
$ Connection to 192.168.122.181 closed by remote host. Connection to 192.168.122.181 closed.
Wer von nun an von einem entfernten System über SSH auf dieses System zugreift, wird automatisch nach 100 Sekunden Inaktivität abgemeldet.