원격 사용자는 몇 명입니까?

원격 사용자는 몇 명입니까?

학교에서 내 가상 머신에 원격으로 로그인하는 사람이 몇 명인지 계산해야 합니다. 누군가가 호스트 컴퓨터에서 SSH로 접속하고 있는지는 알 수 있지만 누군가가 VNC를 통해 XWindows 세션에 텔넷으로 연결하고 있는지, 아니면 학교 콘솔에 앉아 있는지는 알 수 없습니다. 집에서 학교 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)

두 번째 열(tty1)은 물리적 터미널 중 하나에 로컬로 연결된 사람을 나타냅니다. 또한 행의 다섯 번째 열에 (`: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

인용하다

관련 정보