Questo breve tutorial spiega tre diversi modi per disconnettersi automaticamente dagli utenti inattivi dopo un determinato periodo di tempo in sistemi simili a Linux e Unix.
Immagina questo scenario. Stai gestendo un server condiviso a cui accedono regolarmente molti utenti da tutti i sistemi della rete.
Ci sono possibilità che qualche utente dimentichi di disconnettersi dalla sua sessione e lasci aperta la sessione. Lasciare aperta una sessione utente è pericoloso e alcuni utenti potrebbero abusarne intenzionalmente.
Controlleresti manualmente ogni singolo sistema per verificare se gli utenti si sono disconnessi o meno? Non è necessario! Inoltre, è un'attività che richiede molto tempo se ci sono centinaia di macchine nella tua rete.
Invece, puoi fare in modo che un utente si disconnetta automaticamente da una sessione locale o SSH dopo un particolare periodo di inattività.
Disconnessione automatica degli utenti inattivi in Linux
Possiamo disconnettere automaticamente le sessioni utente inattive dopo un certo tempo in tre modi. Vediamo il primo metodo.
Metodo 1:
Modifica ~/.bashrc
o ~/.bash_profile
file:
$ nano ~/.bashrc
Oppure,
$ nano ~/.bash_profile
Aggiungi la seguente riga alla fine:
TMOUT=100
Configura il valore di timeout dell'utente in Linux
In questo modo l'utente si disconnette automaticamente dopo un'inattività di 100 secondi. Puoi definire questo valore a tuo piacimento. Premi ESC
e digita :wq
per salvare il file e chiuderlo.
Applica le modifiche eseguendo il comando seguente:
$ source ~/.bashrc
Oppure,
$ source ~/.bash_profile
Ora, lascia la sessione inattiva per 100 secondi. Dopo un'inattività di 100 secondi, vedrai il seguente messaggio e l'utente verrà automaticamente disconnesso dalla sessione.
timed out waiting for input: auto-logout Connection to 192.168.122.181 closed.
Disconnessione automatica degli utenti inattivi in Linux
Questa impostazione può essere facilmente modificata dall'utente. Perché, ~/.bashrc
il file è di proprietà dell'utente stesso.
Per modificare o eliminare le impostazioni di timeout, è sufficiente eliminare le righe aggiunte sopra e applicare le modifiche eseguendo il seguente comando:
$ source ~/.bashrc
In alternativa, l'utente può disabilitarlo eseguendo i seguenti comandi:
$ export TMOUT=0
Oppure,
$ unset TMOUT
Poiché l'impostazione del timeout è memorizzata nel ~/.bashrc
di proprietà dell'utente file, lui/lei può aggirarlo facilmente semplicemente cancellando la riga. Se vuoi impedire all'utente di modificare le impostazioni, segui il secondo metodo.
Metodo 2:
Accedi come root
utente.
Crea un nuovo file chiamato "autologout.sh"
.
# vi /etc/profile.d/autologout.sh
Aggiungi le seguenti righe:
TMOUT=100 readonly TMOUT export TMOUT
Salva e chiudi il file.
Rendilo eseguibile usando il comando:
# chmod +x /etc/profile.d/autologout.sh
Esci o riavvia il sistema per rendere effettive le modifiche.
L'utente inattivo verrà disconnesso automaticamente dopo 100 secondi. L'utente normale non può modificare queste impostazioni anche se desidera rimanere connesso alla sessione. Verranno espulsi esattamente dopo 100 secondi.
Questi due metodi sono applicabili sia per la sessione locale che per la sessione remota, ad esempio gli utenti che hanno effettuato l'accesso localmente o gli utenti che hanno effettuato l'accesso da un sistema remoto tramite SSH.
Nel prossimo metodo, vedremo come disconnettersi automaticamente solo dalle sessioni SSH inattive, non dalle sessioni locali.
Metodo 3:
Con questo metodo, faremo uscire gli utenti della sessione SSH solo dopo un determinato periodo di inattività.
Modifica /etc/ssh/sshd_config
file:
$ sudo vi /etc/ssh/sshd_config
Aggiungi/modifica le seguenti righe:
ClientAliveInterval 100 ClientAliveCountMax 0
Premi ESC
digitare e digitare :wq
per salvare e chiudere questo file. Riavvia il servizio sshd per rendere effettive le modifiche.
$ sudo systemctl restart sshd
Ora, ssh su questo sistema da un sistema remoto. Dopo 100 secondi, la sessione ssh verrà chiusa automaticamente e vedrai il seguente messaggio:
$ Connection to 192.168.122.181 closed by remote host. Connection to 192.168.122.181 closed.
D'ora in poi, chiunque acceda a questo sistema da un sistema remoto tramite SSH verrà automaticamente disconnesso dopo un'inattività di 100 secondi.