Comment imprimer les noms d’utilisateurs actuellement connectés à l’hôte / serveur UNIX / Linux actuel à partir d’une invite de commande ?
Vous devez utiliser l’un des outils de ligne de commande suivants pour lister les utilisateurs actuellement connectés sur Linux ou les systèmes de type Unix.

Détails du tutoriel
Difficulté niveau Facile
Privilèges de démarrage Oui
Exigences w ou commande who sur Linux et Unix
Est. temps de lecture 5m

Les deux fichiers suivants conservent les enregistrements de connexion sur Linux et les systèmes de type Unix :

  • /var/run/utmp – Conserve et permet de découvrir des informations sur les personnes qui utilisent actuellement le système. Veuillez noter qu’il peut y avoir plus d’utilisateurs Linux et Unix qui utilisent actuellement le système, car tous les programmes n’utilisent pas la journalisation utmp. En d’autres termes, une app mal écrite, des programmes cachés, des logiciels malveillants et d’autres mauvaises choses ne seront pas utiles pour lister les utilisateurs connectés.
  • /var/log/wtmp – Conserve les enregistrements de toutes les connexions et déconnexions.

Nous ne pouvons tout simplement pas lire ces fichiers en utilisant la commande cat/grep/egrep car le fichier est au format de base de données binaire. Par conséquent, nous utilisons les commandes suivantes pour trouver les utilisateurs actuellement connectés sous Linux et les systèmes de type Unix.

Commande Linux pour lister les utilisateurs actuellement connectés

  1. commande w – Affiche des informations sur les utilisateurs actuellement sur la machine, et leurs processus.
  2. commande who – Affiche des informations sur les utilisateurs actuellement connectés.
  3. commande users – Voir les noms de connexion des utilisateurs actuellement sur le système, dans un ordre trié, séparés par des espaces, sur une seule ligne. Elle lit toutes les informations du fichier /var/run/utmp.

Comment trouver les utilisateurs actuellement connectés sous Linux

Ouvrir un terminal (ou se connecter à un serveur distant en utilisant la commande ssh) et taper les commandes suivantes.

Utiliser la commande w pour lister les utilisateurs actuellement connectés sous Unix ou Linux

Ouvrir l’application terminal puis taper la commande w:
$ w

Fig.01: la commande w en action.

Fig.01 : la commande w en action.

Comprendre les sorties de la commande w

D’après la Fig.01 nous voyons ce qui suit pour chaque utilisateur :

  • USER – Nom de connexion Linux ou Unix.
  • TTY – Le nom du tty.
  • DOMIN – L’hôte distant ou l’adresse IP.
  • @Login – Temps de connexion.
  • IDEL – Temps de veille.
  • JCPU – Le temps JCPU est le temps utilisé par tous les processus attachés au tty. Cependant, il n’inclut pas les travaux d’arrière-plan passés, mais inclut les travaux d’arrière-plan en cours d’exécution.
  • PCPU – Le temps PCPU est le temps utilisé par le processus actuel, nommé dans le champ « what ».
  • WHAT – La ligne de commande du processus actuel de cet utilisateur.

Pour voir les infos sur un utilisateur nommé tom, entrez:
$ w tom
Dire à la commande w de ne pas imprimer l’en-tête :
$ w -h
$ w --no-header

Nous pouvons également ignorer le nom d’utilisateur du processus actuel en passant le -u ou –no-current à la commande w:
$ w -u
$ w --no-current

Vous voulez voir le champ du nom d’hôte distant ? Essayez:
$ w -f
Montrer l’adresse IP au lieu du nom d’hôte pour le champ from:
$ w -i
Nous pouvons aussi avoir des sorties de style ancien. En d’autres termes, les anciennes sorties impriment des espaces vides pour les temps d’inactivité inférieurs à une minute:
$ w -o

Afficher tous les utilisateurs connectés à l’aide de la commande who

La commande who fonctionne sur tous les systèmes d’exploitation de type Unix tels que macOS, *BSD, Linux et ainsi de suite. La syntaxe est assez simple:
# who
Voici ce que nous voyons:

root pts/0 2013-03-12 15:10 (10.1.3.177)

La commande who affiche les informations suivantes:

  • racine – Le nom d’utilisateur
  • pts/0 – Type de périphérique de terminal. Dans cet exemple, nous voyons le pseudo-terminal pts/0 utilisé par l’utilisateur root.
  • 2013-03-12 15:10 – Date et heure de connexion de l’utilisateur.
  • (10.1.3.177) – L’adresse IP distante à partir de laquelle l’utilisateur s’est connecté à ce serveur.

Nous pouvons passer l’option -a à la commande who comme suit pour voir l’heure du dernier démarrage du système, afficher les processus morts, les processus de connexion au système, les processus actifs engendrés par init/systemd, imprimer le niveau d’exécution actuel, imprimer le dernier changement d’horloge système, montrer l’état des messages de l’utilisateur et lister les utilisateurs connectés à la boîte Linux ou Unix :
# who -a
Voici la sortie d’un ancien système Linux (pré-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

Exemple de sorties d’un système Linux basé sur Systemd :

Comment trouver les utilisateurs actuellement connectés sous LINUX

Avoir de l’aide avec la commande whois

Vous pouvez passer les options suivantes à la commande who (tirées de la page de manuel de la commande 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

Commande users

Ouvrir un terminal ou se connecter sur la session ssh et entrer la commande users suivante :
$ users
Sortir qui est actuellement connecté:

abhi charvi vivek vivek zcafe

Vie des utilisateurs connectés avec la commande last

Vous voulez voir une liste des derniers utilisateurs connectés ? Utilisez la commande last pour consulter la base de données binaire appelée /var/log/wtmp et affiche une liste de tous les utilisateurs connectés (et déconnectés) depuis la création de ce fichier. Par exemple, voir l’historique de l’utilisateur nommé ‘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

Voir « Linux Find Out Last System Reboot Time and Date Command » pour plus d’exemples.

Résumé

Nous avons appris diverses commandes qui voient les enregistrements de connexion stockés dans les fichiers utmp et wtmp. Je vous suggère fortement de consulter les pages de manuel suivantes :
man w
man who
man users
man last
man utmp

Voyez comment conserver une piste d’audit détaillée de ce qui est fait sur vos systèmes Linux en utilisant la commande ac.

🐧 Obtenez les derniers tutoriels sur Linux, l’Open Source & DevOps via le flux RSS ou la newsletter hebdomadaire par email.
🐧 14 commentaires jusqu’à présent…. en ajouter un ↓

.

.

Catégorie Liste des commandes Unix et Linux
Gestion des fichiers cat
Firewall Alpine Awall – CentOS 8 – OpenSUSE – RHEL 8 – Ubuntu 16.04 – Ubuntu 18.04 – Ubuntu 20.04
Utilitaires réseau dig – host – ip – nmap
OpenVPN CentOS 7 – CentOS 8 – Debian 10 – Debian 8/9 – Ubuntu 18.04 – Ubuntu 20.04
Gestionnaire de paquets apk – apt
Processes Management bg – chroot – cron – disown – fg – jobs – killall – kill – pidof – pstree – pwdx – time
Recherche grep – whereis – which
Informations sur l’utilisateur groupes – id – lastcomm – last – lid/libuser-.lid – logname – members – users – whoami – who – w
WireGuard VPN Alpine – CentOS 8 – Debian 10 – Firewall – Ubuntu 20.04

.

Catégories : Articles

0 commentaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *