リモートユーザーは何人ですか?

リモートユーザーは何人ですか?

学校で自分の仮想マシンにリモートでログインする人が何人かを計算する必要があります。誰かがホストコンピュータからSSHに接続しているかどうかはわかりますが、誰かがVNCを介してXWindowsセッションにTelnetで接続しているのか、学校のコンソールに座っているのかはわかりません。自宅で学校のVMにログインし、who操作を実行するときに自分だけにログインすると、次のようになります。

 user1   tty7    2013-10-10 23:31 (:1)
 user1   pts/0   2013-10-10 23:23 (:1.0)

注:誰も仮想マシンに直接ログインできません。学校のLANにログインし、VMホストにログインしてVMにログインする必要があります。仮想マシンのホストマシンにログインする必要があるかどうかを知りたいです。これはリモートログインと見なされますか?

ベストアンサー1

WHO

これを達成するには、いくつかの方法を使用する必要があります。このwhoコマンドを使用すると、誰がアクティブシェルを持っているのか、仮想sshマシンに入ったのかを確認できます。

$ who | cut -d' ' -f1 | sort -u
saml

ユーザー

userこのコマンドを使用して、誰がログインしているかを確認することもできます。これらは、現在の/var/run/utmpログファイル&にアクティブとしてマークされているユーザーです/var/log/wtmp

$ users | sed 's/ /\n/g'|sort -u
saml

誰がまた訪れたのか

このコマンドを使用すると、who次の行を表示できます。

$ who
saml     tty1         2013-10-06 10:05 (:0)
saml     pts/0        2013-10-06 10:07 (:0.0)
saml     pts/5        2013-10-07 11:48 (:0.0)

2番目の列(tty1)は、物理端末の1つにローカルに接続されている人を表します。また、行の5番目の列に(`:0)が表示されていることがわかります。これは、誰かが仮想マシンに直接座ってXデスクトップを実行していることを意味します。

他の行はpts/0擬似端末であり、通常はボックスにgnome-terminalまたはSSHからタブを作成したときに生成されます。

仮想ネットワーク接続?

これは少しトリッキーです。特にVNCサーバーがXに統合されているため、これを直接知る方法はありません。検索プロセスには何も表示されません。

$ pgrep -f vnc
$

VNCネットワーク接続を見つけることができます。

$ sudo netstat -anpt | grep -i Xorg
tcp        0      0 0.0.0.0:5900                0.0.0.0:*                   LISTEN      3948/Xorg           
tcp        0      0 0.0.0.0:6000                0.0.0.0:*                   LISTEN      3948/Xorg           
tcp        0      0 192.168.1.3:5900            192.168.1.20:41064          ESTABLISHED 3948/Xorg           
tcp        0      0 :::6000                     :::*                        LISTEN      3948/Xorg

ここでは、IP 192.168.1.3では通常VNCで使用されるポート5900へのVNC接続があることがわかりますが、このポートは決して保証されません。

接続が切断されると、接続は次のようになります。

 $ netstat -anpt | grep -i Xorg
tcp        0      0 0.0.0.0:5900                0.0.0.0:*                   LISTEN      3948/Xorg           
tcp        0      0 0.0.0.0:6000                0.0.0.0:*                   LISTEN      3948/Xorg           
tcp        0      0 :::6000                     :::*                        LISTEN      3948/Xorg      

また、XサーバーがVNCを実行していることを確認することもできます(そのように見えます)。

$ lsof -p 3948 | grep -i vnc
Xorg    3948 root  mem    REG      253,0   394420   48693751 /usr/lib/xorg/modules/extensions/libvnc.so

VNCユーザーのための最善の選択肢は、コンピュータ上のユーザー(tty1などの物理端末のユーザー)、つまりXデスクトップを実行してVNCを使用して接続するGNOMEセッションを持つ人を削除することです。

$ ps -f -p $(pgrep -f gnome-session)
UID        PID  PPID  C STIME TTY          TIME CMD
root     22240  3943  0 Sep29 ?        00:00:00 /usr/bin/gnome-session

引用する

おすすめ記事