È necessario utilizzare uno dei seguenti strumenti a riga di comando per elencare gli utenti attualmente connessi su Linux o sistemi Unix-like.
Dettagli del tutorial | ||||
---|---|---|---|---|
Difficoltà livello | Facile | |||
Privilegi di root | Sì | |||
Requisiti | w o il comando who su Linux e Unix | |||
Tempo stimato di lettura | Sì tempo di lettura | 5m |
I seguenti due file mantengono i record di login su Linux e sistemi Unix-like:
- /var/run/utmp – Mantiene e permette di scoprire informazioni su chi sta attualmente utilizzando il sistema. Si prega di notare che ci possono essere più utenti Linux e Unix che stanno attualmente utilizzando il sistema, perché non tutti i programmi utilizzano il logging utmp. In altre parole, app scritte male, programmi nascosti, malware e altre cose cattive non saranno utili per elencare gli utenti loggati.
- /var/log/wtmp – Registra tutti i login e i logout.
Non possiamo semplicemente leggere questi file usando il comando cat/grep/egrep poiché il file è in formato database binario. Quindi, usiamo i seguenti comandi per trovare gli utenti attualmente loggati in Linux e nei sistemi Unix-like.
Comando Linux per elencare gli utenti attualmente loggati
- comando w – Mostra informazioni sugli utenti attualmente sulla macchina, e sui loro processi.
- comando who – Mostra informazioni sugli utenti che sono attualmente loggati.
- comando users – Vede i nomi di login degli utenti attualmente sul sistema, in ordine ordinato, separati da spazio, su una singola linea. Legge tutte le informazioni dal file /var/run/utmp.
Come trovare gli utenti attualmente loggati in Linux
Apri un terminale (o accedi al server remoto usando il comando ssh) e digita i seguenti comandi.
Usare il comando w per elencare gli utenti attualmente loggati sotto Unix o Linux
Aprire l’applicazione terminale e poi digitare il comando w:$ w
Fig.01: comando w in azione.
Comprensione degli output del comando w
Dalla Fig.01 vediamo quanto segue per ogni utente:
- USER – Nome di login Linux o Unix.
- TTY – Il nome della tty.
- FROM L’host remoto o indirizzo IP.
- @Login – Tempo di login.
- IDEL – Tempo di inattività.
- JCPU – Il tempo JCPU è il tempo utilizzato da tutti i processi collegati alla tty. Tuttavia, non include i lavori in background passati, ma include i lavori in background attualmente in esecuzione.
- PCPU – Il tempo PCPU è il tempo utilizzato dal processo corrente, nominato nel campo “what”.
- WHAT – La linea di comando del processo corrente dell’utente.
Per vedere le informazioni su un utente chiamato tom, inserire:$ w tom
Direte al comando w non stampare l’intestazione:$ w -h
$ w --no-header
Possiamo anche ignorare il nome utente del processo corrente passando il -u o –no-current al comando w:$ w -u
$ w --no-current
Vuoi vedere il campo hostname remoto? Provate:$ w -f
Mostra l’indirizzo IP invece dell’hostname per il campo from:$ w -i
Possiamo anche un output vecchio stile. In altre parole i vecchi output stampano uno spazio vuoto per tempi di inattività inferiori a un minuto:$ w -o
Visualizzare tutti gli utenti connessi usando il comando who
Il comando who funziona su tutti i sistemi operativi Unix come macOS, *BSD, Linux e così via. La sintassi è abbastanza semplice:# who
Ecco cosa vediamo:
root pts/0 2013-03-12 15:10 (10.1.3.177)
Il comando who visualizza le seguenti informazioni:
- root – Il nome utente
- pts/0 – Tipo di terminale. In questo esempio, vediamo lo pseudoterminale pts/0 usato dall’utente root.
- 2013-03-12 15:10 – Data e ora di login dell’utente.
- (10.1.3.177) – L’indirizzo IP remoto da cui l’utente si è collegato a questo server.
Possiamo passare l’opzione -a al comando who come segue per vedere l’ora dell’ultimo avvio del sistema, visualizzare i processi morti, i processi di accesso al sistema, i processi attivi generati da init/systemd, stampare il runlevel corrente, stampare l’ultimo cambiamento dell’orologio di sistema, mostrare lo stato dei messaggi dell’utente, ed elencare gli utenti che hanno effettuato l’accesso a Linux o Unix box:# who -a
Ecco l’output di un vecchio sistema Linux (pre Systemd):
system boot 2013-03-02 04:10 run-level 3 2013-03-02 04:10LOGIN /dev/ttyS1 2013-03-02 04:11 7951 id=v/ttLOGIN tty2 2013-03-02 04:11 7953 id=2LOGIN tty1 2013-03-02 04:11 7950 id=1LOGIN tty3 2013-03-02 04:11 7955 id=3LOGIN tty4 2013-03-02 04:11 7957 id=4LOGIN tty5 2013-03-02 04:11 7959 id=5LOGIN tty6 2013-03-02 04:11 7961 id=6root + pts/0 2013-03-12 15:10 . 7451 (10.1.3.177) pts/1 2013-03-08 12:29 23510 id=ts/1 term=0 exit=0
Un esempio di output da un sistema Linux basato su Systemd:
Per ottenere aiuto con il comando whois
È possibile passare le seguenti opzioni al comando who (prese dalla pagina man del comando who):
Just open a -a, --all same as -b -d --login -p -r -t -T -u -b, --boot time of last system boot -d, --dead print dead processes -H, --heading print line of column headings -l, --login print system login processes --lookup attempt to canonicalize hostnames via DNS -m only hostname and user associated with stdin -p, --process print active processes spawned by init -q, --count all login names and number of users logged on -r, --runlevel print current runlevel -s, --short print only name, line, and time (default) -t, --time print last system clock change -T, -w, --mesg add user's message status as +, - or ? -u, --users list users logged in --message same as -T --writable same as -T --help display this help and exit --version output version information and exit
comando users
Aprire un terminale o effettuare il login nella sessione ssh e inserire il seguente comando users:$ users
Esce chi è attualmente loggato:
abhi charvi vivek vivek zcafe
Vivere gli utenti loggati con ultimo comando
Vuoi vedere un elenco degli ultimi utenti loggati? Usa l’ultimo comando per cercare il database binario chiamato /var/log/wtmp e visualizza un elenco di tutti gli utenti che hanno effettuato l’accesso (e l’uscita) da quando quel file è stato creato. Per esempio vedi la cronologia per l’utente chiamato ‘vivek’:$ last vivek
vivek :1 :1 Sat Jan 16 10:19 still logged invivek :1 :1 Tue Jan 12 10:26 - 01:52 (3+15:26)vivek :1 :1 Mon Jan 11 12:52 - 03:54 (15:01)vivek :1 :1 Sun Jan 10 14:07 - down (13:20)vivek :1 :1 Sat Jan 9 09:10 - 02:50 (17:40)vivek :1 :1 Sat Jan 9 09:00 - down (00:08)vivek :1 :1 Thu Jan 7 17:35 - down (1+09:09)vivek :1 :1 Mon Jan 4 10:38 - down (3+06:44)vivek :1 :1 Sun Jan 3 12:16 - 02:41 (14:24)vivek :1 :1 Sat Jan 2 20:00 - 02:08 (06:08)vivek :1 :1 Sat Jan 2 09:11 - down (10:47)vivek :1 :1 Fri Jan 1 09:58 - 01:30 (15:31)vivek :1 :1 Fri Jan 1 02:32 - 04:17 (01:44)vivek :1 :1 Thu Dec 31 13:14 - 23:10 (09:55)vivek :1 :1 Thu Dec 31 00:12 - 02:37 (02:25)vivek :1 :1 Wed Dec 30 12:40 - 22:35 (09:54)vivek :1 :1 Wed Dec 30 00:05 - 03:13 (03:08)vivek :1 :1 Tue Dec 29 14:10 - 21:27 (07:17)vivek :1 :1 Mon Dec 28 09:02 - 00:38 (15:35)vivek pts/2 192.168.2.17 Fri Dec 25 23:46 - 15:02 (15:15)vivek :1 :1 Thu Dec 24 02:00 - 01:51 (3+23:50)vivek :1 :1 Wed Dec 23 12:57 - down (09:46)vivek :1 :1 Tue Dec 22 13:23 - down (12:19).......vivek :1 :1 Tue Dec 8 01:53 - down (01:15)vivek pts/4 192.168.2.25 Wed Dec 2 22:14 - 22:18 (00:03).................vivek :0 :0 Fri Oct 4 18:56 - 19:00 (00:04)vivek pts/0 192.168.2.25 Fri Oct 4 18:17 - 18:48 (00:31)vivek pts/0 192.168.2.25 Fri Oct 4 18:12 - 18:16 (00:03)vivek tty1 Fri Oct 4 18:12 - down (00:04) wtmp begins Fri Oct 4 18:11:35 2019
Vedi “Linux Find Out Last System Reboot Time and Date Command” per altri esempi.
Riassumendo
abbiamo imparato vari comandi che vedono i record di login memorizzati nei file utmp e wtmp. Suggerisco vivamente di dare un’occhiata alle seguenti pagine man:man w
man who
man users
man last
man utmp
Vedi come tenere una traccia dettagliata di ciò che viene fatto sui tuoi sistemi Linux usando il comando ac.
🐧 14 commenti finora… aggiungine uno ↓
Categoria | Elenco di comandi Unix e Linux |
---|---|
Gestione dei file | cat |
Firewall | Alpine Awall – CentOS 8 – OpenSUSE – RHEL 8 – Ubuntu 16.04 – Ubuntu 18.04 – Ubuntu 20.04 |
Utilità di rete | dig – host – ip – nmap |
OpenVPN | CentOS 7 – CentOS 8 – Debian 10 – Debian 8/9 – Ubuntu 18.04 – Ubuntu 20.04 |
Package Manager | apk – apt |
Gestione dei processi | bg – chroot – cron – disown – fg – jobs – killall – kill – pidof – pstree – pwdx – tempo |
Ricerca | grep – whereis – quale |
Informazioni utente | gruppi – id – lastcomm – last – lid/libuser-lid – logname – members – users – whoami – who – w |
WireGuard VPN | Alpine – CentOS 8 – Debian 10 – Firewall – Ubuntu 20.04 |
0 commenti