Un amministratore di sistema Linux dovrebbe tenere d'occhio chi è attualmente connesso al sistema Linux e cosa stanno facendo. Sapevamo già come trovare gli ultimi utenti che hanno effettuato l'accesso in Linux. Come identificheresti chi è connesso al tuo sistema Linux in questo momento e cosa stanno facendo? Facile! Questo tutorial elenca vari metodi per trovare gli utenti attualmente connessi in Linux.
1. Trova gli utenti attualmente connessi in Linux utilizzando w
comando
Nei sistemi operativi Linux, esiste un comando speciale di una sola lettera chiamato w
che ti aiuta a trovare chi è connesso e cosa stanno facendo nel sistema. Questo è lo strumento da riga di comando più comunemente utilizzato per visualizzare le informazioni sugli utenti attualmente sul server e sui loro processi.
Il w
comando è spesso utile quando si amministra un server Linux a cui accedono frequentemente molti utenti. Puoi monitorarli tutti senza dover installare strumenti o applicazioni aggiuntivi.
Il w
comando mostra vari dettagli utili, inclusi i seguenti:
- l'ora corrente,
- da quanto tempo è in esecuzione il sistema,
- quanti utenti sono attualmente connessi,
- e il carico del sistema è in media negli ultimi 1, 5 e 15 minuti.
Il w
il comando recupera le informazioni su chi è attualmente connesso da /var/run/utmp
file e recupera le informazioni sul processo da /proc
file.
Ora vediamo come usare w
comando per visualizzare chi ha effettuato l'accesso sulla tua macchina Linux e cosa stanno facendo.
L'uso tipico di w
il comando è:
$ w [options] user
Quando esegui il comando w senza alcuna opzione, verranno visualizzati tutti gli utenti attualmente connessi nel tuo sistema Linux:
$ w
Risultato di esempio:
08:42:30 up 28 min, 2 users, load average: 1.30, 0.87, 0.45
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
sk tty1 - 08:41 42.00s 0.10s 0.06s -bash
ostechni pts/1 192.168.225.37 08:42 6.00s 0.09s 0.01s w
Come puoi vedere nell'output sopra, attualmente ci sono due utenti (sk e ostechni ) effettuato l'accesso al mio server Ubuntu. Il w
comando visualizza i seguenti dettagli per i singoli utenti:
- nome di accesso,
- il nome tty,
- indirizzo IP di origine da cui l'utente ha effettuato l'accesso,
- ora di accesso,
- tempo di inattività,
- Tempo JCPU (il tempo utilizzato da tutti i processi collegati a tty),
- Tempo PCPU (il tempo utilizzato dal processo corrente),
- e la riga di comando del loro processo corrente.
Se vuoi visualizzare i dettagli di uno specifico utente che ha effettuato l'accesso (es. ostechnix), il comando sarebbe:
$ w ostechnix
08:51:36 up 37 min, 2 users, load average: 1.12, 1.06, 0.76
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
ostechni pts/1 192.168.225.37 08:42 0.00s 0.09s 0.01s w ostech
Puoi omettere l'intestazione dall'output usando -h
opzione:
$ w -h
sk tty1 - 08:41 16:13 0.10s 0.06s -bash
ostechni pts/1 192.168.225.37 08:42 1.00s 0.09s 0.01s w -h
Puoi anche visualizzare l'indirizzo IP invece del nome host per "FROM"
(nome host remoto) utilizzando -i
opzione:
$ w -i
Potresti non voler stampare tutti i dettagli. In tal caso, puoi escludere l'ora di accesso, i tempi JCPU o PCPU utilizzando -s
(--short
) opzione:
$ w -s
09:02:50 up 48 min, 2 users, load average: 0.31, 0.79, 0.84
USER TTY FROM IDLE WHAT
sk tty1 - 21:02 -bash
ostechni pts/1 192.168.225.37 1.00s w -s
Per maggiori dettagli, controlla le pagine man:
$ man w
Oppure, fare riferimento alla sezione della guida:
$ w --help
Usage:
w [options]
Options:
-h, --no-header do not print header
-u, --no-current ignore current process username
-s, --short short format
-f, --from show remote hostname field
-o, --old-style old style output
-i, --ip-addr display IP address instead of hostname (if possible)
--help display this help and exit
-V, --version output version information and exit
For more details see w(1).
2. Visualizza tutti gli utenti che hanno effettuato l'accesso utilizzando who
comando
Il who
command è un altro strumento da riga di comando per visualizzare informazioni sugli utenti che sono attualmente collegati a una macchina Linux.
Se esegui who
comando senza alcuna opzione, visualizzerà tutti gli utenti che hanno effettuato l'accesso:
$ who
Risultato di esempio:
sk tty1 2021-01-12 08:41
ostechnix pts/1 2021-01-12 08:42 (192.168.225.37)
Come puoi vedere nell'output sopra, who
comando mostra il nome utente, il tipo di dispositivo terminale (es. tty
o pts
) su cui si è svolta la sessione, il tempo di avvio e l'indirizzo IP di origine da cui l'utente ha effettuato l'accesso.
Puoi filtrare i dettagli per un utente specifico con grep
comando:
$ who | grep ostechnix
ostechnix pts/1 2021-01-12 08:42 (192.168.225.37)
Il comando precedente troverà se l'utente specificato otechnix è connesso o meno.
Se desideri visualizzare le informazioni solo per la sessione del terminale corrente, esegui:
$ who am i
ostechnix pts/1 2021-01-12 08:42 (192.168.225.37)
Si prega di notare gli spazi tra le parole. Se esegui il comando precedente senza spazi, verrà visualizzato solo il nome utente:
$ whoami
ostechnix
Il who
comando ha poche altre opzioni per ottenere un output personalizzato.
Ad esempio, puoi visualizzare tutte le informazioni disponibili sugli accessi correnti utilizzando -a
bandiera:
$ who -a
Risultato di esempio:
system boot 2021-01-12 08:14
sk - tty1 2021-01-12 08:41 00:59 1463
run-level 5 2021-01-12 08:15
ostechnix + pts/1 2021-01-12 08:42 . 1477 (192.168.225.37)
LOGIN tty6 2021-01-12 08:41 1366 id=tty6
Per visualizzare tutte le informazioni disponibili con le intestazioni di colonna, usa -H
bandiera:
$ who -a -H
NAME LINE TIME IDLE PID COMMENT EXIT
system boot 2021-01-12 08:14
sk - tty1 2021-01-12 08:41 00:59 1463
run-level 5 2021-01-12 08:15
ostechnix + pts/1 2021-01-12 08:42 . 1477 (192.168.225.37)
LOGIN tty6 2021-01-12 08:41 1366 id=tty6
Per maggiori dettagli, fare riferimento alle pagine man e alla sezione della guida di who comando utilizzando uno qualsiasi dei seguenti comandi:
$ man who
$ who --help
3. Stampa gli utenti che hanno effettuato l'accesso con users
comando
Gli users
comando stampa i nomi utente degli utenti attualmente collegati al sistema host corrente.
Per visualizzare un elenco di tutti gli utenti che hanno effettuato l'accesso in una macchina Linux, eseguire:
$ users
ostechnix sk
Per ricevere assistenza, esegui uno dei seguenti comandi:
$ man users
$ users --help
4. Visualizza gli utenti che hanno effettuato l'accesso con last
comando
L'last
Il comando di solito mostra tutti gli utenti che hanno effettuato l'accesso e la disconnessione da una macchina Linux dal /var/log/wtmp
il file è stato creato.
$ last
In alto viene visualizzato l'elenco degli utenti attualmente connessi.
ostechni pts/1 192.168.225.37 Tue Jan 12 08:42 still logged in
sk tty1 Tue Jan 12 08:41 still logged in
ostechni tty1 Tue Jan 12 08:41 - 08:41 (00:00)
sk pts/1 192.168.225.37 Tue Jan 12 08:41 - 08:41 (00:00)
[...]
Per assistenza, vedere le pagine man o utilizzare --help
opzione:
$ man last
$ last --help
5. Trova chi è connesso a un sistema Linux usando il comando id
Il id
Il comando viene utilizzato per stampare le informazioni sull'utente e sul gruppo per l'UTENTE specificato o per l'utente corrente quando UTENTE viene omesso.
Per stampare l'utente attualmente connesso nella sessione corrente, eseguire id
comando con -un
opzioni:
$ id -un
ostechnix
Questo è lo stesso di whoami
comando.
Per ottenere aiuto, fai:
$ man id
$ id --help
Tutti gli strumenti di cui sopra sono disponibili per impostazione predefinita nella maggior parte delle distribuzioni Linux. C'è un altro strumento da riga di comando disponibile per trovare chi ha effettuato l'accesso in un sistema Linux. Non è installato per impostazione predefinita, ma è disponibile nei repository predefiniti della maggior parte delle distribuzioni Linux.
6. Elenca gli utenti che hanno effettuato l'accesso con il comando finger
Dito è un'utilità di ricerca di informazioni sull'utente da riga di comando. Visualizza il nome di accesso dell'utente, il nome reale, il nome del terminale e lo stato di scrittura, il tempo di inattività, il tempo di accesso, la posizione dell'ufficio e il numero di telefono dell'ufficio, ecc.
Il programma finger non è installato per impostazione predefinita in alcune distribuzioni Linux. Puoi installare finger nei sistemi Debian e Ubuntu usando il gestore di pacchetti apt come di seguito:
$ sudo apt install finger
Una volta installato, esegui il comando finger per trovare gli utenti che hanno effettuato l'accesso nel tuo sistema Linux:
$ finger
Risultato di esempio:
Login Name Tty Idle Login Time Office Office Phone
ostechnix ostechnix pts/1 Jan 12 08:42 (192.168.225.37)
sk *tty1 3:17 Jan 12 08:41
Visualizza informazioni su un utente specifico:
$ finger ostechnix
Risultato di esempio:
Login: ostechnix Name: ostechnix
Directory: /home/ostechnix Shell: /bin/bash
On since Tue Jan 12 08:42 (UTC) on pts/1 from 192.168.225.37
2 seconds idle
No mail.
No Plan.
Questi sono alcuni metodi per trovare gli utenti attualmente connessi in un sistema Linux. Sapere chi ha effettuato l'accesso e scoprire cosa stanno facendo nel tuo sistema può essere utile nei momenti di risoluzione dei problemi. Spero che uno dei metodi sopra menzionati ti possa aiutare.
Lettura correlata:
- Come elencare tutti gli utenti in Linux
- Come monitorare l'attività degli utenti in Linux
- Come limitare l'accesso degli utenti al sistema Linux