複数のユーザーがログインしている場合、アクティブユーザーを取得するにはどうすればいいですか

複数のユーザーがログインしている場合、アクティブユーザーを取得するにはどうすればいいですか

SSH セッション経由で、現在どのユーザーがマシンを使用しているかという情報を取得したいと考えています。「w」または「who」でログインしているユーザーは取得しますが、現在デスクトップを開いているユーザーを確認して、yad を使用してメッセージを送信するにはどうすればよいでしょうか。

編集: 汚いコードを見つけましたが、今のところは動作します:

#!/bin/bash
tty=$(cat /sys/class/tty/tty0/active)
active_user=$(w | grep $tty | awk '{print $1;}')

#to get the display also:
disp=$(who | awk -v term="$tty" '/\(:/ $0 ~ term { gsub(/\(|\)/, "", $0); print $5 }')

答え1

汚いコードを見つけましたが、今のところは動作します:

#!/bin/bash
tty=$(cat /sys/class/tty/tty0/active)
active_user=$(w | grep $tty | awk '{print $1;}')

#to get the display also:
disp=$(who | awk -v term="$tty" '/\(:/ $0 ~ term { gsub(/\(|\)/, "", $0); print $5 }')

関連情報