Comment savoir si un utilisateur est connecté à UNIX

J’essaie de mettre à jour un script shell UNIX pour qu’il ne s’exécute que si l’utilisateur n’est PAS connecté à son compte UNIX. J’ai envisagé d’utiliser le doigt

Recherchez ensuite le texte “On depuis” …

Cependant, j’ai constaté que lorsque je saisis un compte d’utilisateur particulier que je viens de connecter via Putty, cet utilisateur était censé ne jamais être connecté.

Comment quelqu’un verrait-il si l’utilisateur est physiquement connecté au système UNIX?

Je vous remercie,

“qui -a” …? Affiche également le terminal associé à un utilisateur connecté.

La last commande peut être utile, car elle indique l’historique de la connexion de quelqu’un et de la manière dont il est arrivé. Par exemple, vous pouvez savoir s’il s’agit d’une connexion distante (ssh) ou d’un terminal (un vrai tty), etc.

Sinon, vous pouvez facilement écrire votre propre script Perl / php / Python pour vérifier directement les journaux Utmp, pour savoir si un utilisateur est actuellement connecté, par exemple

Python: isLoggedIn.py [userid]

 #!/usr/bin/python from pyutmp import UtmpFile import sys for utmp in UtmpFile(): # utmp is a Utmp object if utmp.ut_user_process: if utmp.ut_user in sys.argv: print "User: %s is logged in\n" % (utmp.ut_user) sys.exit(0) print "Not logged in\n" sys.exit(1)