Questo articolo è stato scritto da Hari Haran.
In qualità di amministratore di sistema, potresti voler sapere chi è sul sistema in qualsiasi momento. Potresti anche voler sapere cosa stanno facendo. In questo articolo esaminiamo 4 diversi metodi per identificare chi si trova sul tuo sistema Linux.
1. Ottieni i processi in esecuzione dell'utente che ha effettuato l'accesso utilizzando w
comando w viene utilizzato per mostrare i nomi degli utenti che hanno effettuato l'accesso e ciò che stanno facendo. Le informazioni verranno lette dal file /var/run/utmp. L'output del comando w contiene le seguenti colonne:
- Nome dell'utente
- Numero macchina o numero tty dell'utente
- Indirizzo macchina remota
- Orario di accesso dell'utente
- Tempo di inattività (tempo non utilizzabile)
- Tempo utilizzato da tutti i processi collegati a tty (tempo JCPU)
- Tempo utilizzato dal processo corrente (tempo PCPU)
- Comando attualmente eseguito dagli utenti
È possibile utilizzare le seguenti opzioni per il comando w:
- -h Ignora le informazioni sull'intestazione
- -u Visualizza la media del carico (output del tempo di attività)
- -s Rimuove JCPU, PCPU e ora di accesso.
$ w 23:04:27 up 29 days, 7:51, 3 users, load average: 0.04, 0.06, 0.02 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT ramesh pts/0 dev-db-server 22:57 8.00s 0.05s 0.01s sshd: ramesh [priv] jason pts/1 dev-db-server 23:01 2:53 0.01s 0.01s -bash john pts/2 dev-db-server 23:04 0.00s 0.00s 0.00s w $ w -h ramesh pts/0 dev-db-server 22:57 17:43 2.52s 0.01s sshd: ramesh [priv] jason pts/1 dev-db-server 23:01 20:28 0.01s 0.01s -bash john pts/2 dev-db-server 23:04 0.00s 0.03s 0.00s w -h $ w -u 23:22:06 up 29 days, 8:08, 3 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT ramesh pts/0 dev-db-server 22:57 17:47 2.52s 2.49s top jason pts/1 dev-db-server 23:01 20:32 0.01s 0.01s -bash john pts/2 dev-db-server 23:04 0.00s 0.03s 0.00s w -u $ w -s 23:22:10 up 29 days, 8:08, 3 users, load average: 0.00, 0.00, 0.00 USER TTY FROM IDLE WHAT ramesh pts/0 dev-db-server 17:51 sshd: ramesh [priv] jason pts/1 dev-db-server 20:36 -bash john pts/2 dev-db-server 1.00s w -s
2. Ottieni il nome utente e il processo dell'utente che ha effettuato l'accesso utilizzando il comando who e users
che comanda viene utilizzato per ottenere l'elenco dei nomi utente che sono attualmente collegati. L'output del comando who contiene le seguenti colonne:nome utente, numero tty, data e ora, indirizzo macchina.
$ who ramesh pts/0 2009-03-28 22:57 (dev-db-server) jason pts/1 2009-03-28 23:01 (dev-db-server) john pts/2 2009-03-28 23:04 (dev-db-server)
Per ottenere un elenco di tutti i nomi utente attualmente connessi, utilizza quanto segue:
$ who | cut -d' ' -f1 | sort | uniq john jason ramesh
Comando utenti
comando utenti viene utilizzato per stampare il nome utente che è attualmente registrato nell'host corrente. È uno dei comandi che non ha altre opzioni oltre alla guida e alla versione. Se l'utente utilizza 'n' numero di terminali, il nome utente verrà visualizzato in 'n' numero di volte nell'output.
$ users john jason ramesh
3. Ottieni il nome utente a cui sei attualmente connesso utilizzando whoami
Wow il comando viene utilizzato per stampare il nome utente connesso.
$ whoami john
comando whoami restituisce lo stesso output di id -un come mostrato di seguito:
$ id -un john
chi sono io il comando visualizzerà il nome utente connesso e i dettagli tty correnti. L'output di questo comando contiene le seguenti colonne:nome utente connesso, nome tty, ora corrente con data e indirizzo IP da cui questo utente ha avviato la connessione.
$ who am i john pts/2 2009-03-28 23:04 (dev-db-server) $ who mom likes john pts/2 2009-03-28 23:04 (dev-db-server) Warning: Don't try "who mom hates" command.
Inoltre, se fai su a qualche altro utente, questo comando fornirà le informazioni sui dettagli del nome utente che ha effettuato l'accesso.
4. Ottieni la cronologia degli accessi utente in qualsiasi momento
ultimo comando fornirà la cronologia degli accessi per un nome utente specifico. Se non forniamo alcun argomento per questo comando, elencherà la cronologia di accesso per tutti gli utenti. Per impostazione predefinita, queste informazioni verranno lette dal file /var/log/wtmp. L'output di questo comando contiene le seguenti colonne:
- Nome utente
- Numero di dispositivo Tty
- Data e ora di accesso
- Tempo di disconnessione
- Tempo di lavoro totale
$ last jason jason pts/0 dev-db-server Fri Mar 27 22:57 still logged in jason pts/0 dev-db-server Fri Mar 27 22:09 - 22:54 (00:45) jason pts/0 dev-db-server Wed Mar 25 19:58 - 22:26 (02:28) jason pts/1 dev-db-server Mon Mar 16 20:10 - 21:44 (01:33) jason pts/0 192.168.201.11 Fri Mar 13 08:35 - 16:46 (08:11) jason pts/1 192.168.201.12 Thu Mar 12 09:03 - 09:19 (00:15) jason pts/0 dev-db-server Wed Mar 11 20:11 - 20:50 (00:39
Questo articolo è stato scritto da Hari Haran. Lavora in bk Systems (p) Ltd, ed è interessato a contribuire all'open source. The Geek Stuff accoglie con favore i tuoi suggerimenti e gli articoli degli ospiti.