Chaque nouvel utilisateur se connectant génère un nouveau sshd session avec un PID spécifique. Vous pouvez utiliser pstree pour imprimer quelles commandes sont héritées de quelles sshd session, puis recoupez ce PID dans /var/log/auth.log .
Exemple (anonymisé) :Je me suis connecté à un serveur distant avec 3 sessions simultanées, avec le même utilisateur distant. Je veux maintenant savoir de quelle adresse IP provient le client qui a exécuté la commande watch date .
$ pstree -p | grep watch
| |-sshd(15243)---sshd(15342)---bash(15343)---watch(15450)
$ sudo grep 15243 /var/log/auth.log
Mar 7 15:37:29 XXXXXXXXXX sshd[15243]: Accepted publickey for XXXXXXXXXX from 12.34.56.78 port 48218 ssh2
Mar 7 15:37:29 XXXXXXXXXX sshd[15243]: pam_unix(sshd:session): session opened for user XXXXXXXXXX by (uid=0)
Mar 7 15:37:44 XXXXXXXXXX sudo: XXXXXXXXXX : TTY=pts/7 ; PWD=/home/XXXXXXXXXX ; USER=root ; COMMAND=/bin/grep 15243 /var/log/auth.log
pstree -p montre que le watch la commande est héritée de sshd avec PID 15243. grep ing pour ce PID en /var/auth/auth.log indique que c'est l'IP 12.34.56.78 qui a démarré cette session. C'est donc aussi l'utilisateur qui a démarré watch .
Quant à trouver history pour cet utilisateur en particulier, cela ne peut pas être fait d'après ce que je peux voir lorsque tous les utilisateurs distants utilisent le même utilisateur SSH local. En outre, il peut facilement être usurpé/inactivé/etc., il n'est donc pas vraiment fiable. S'il est enregistré dans le fichier d'historique, vous pouvez simplement rechercher le cp commande et regarde en arrière dans le fichier, mais s'il n'y est pas, alors il n'y a pas grand chose à faire.