IT HOW

무엇이는 물어보세요

컨텐츠로 건너뛰기
  • 프로그래밍
  • 파이썬
  • 자바
  • 자바스크립트
  • 리눅스
  • c#

실제 콘솔을 사용하는 사람을 찾는 방법은 무엇입니까? 실제 콘솔 에있는 사용자 (키보드,

스크립트를 사용하여 현재 실제 콘솔 에있는 사용자 (키보드, 마우스 및 그래픽 디스플레이 명령을 가진 사용자)의 사용자 이름을 찾고 싶습니다 .

X를 실행하는 사람을 알고 싶지 않습니다 (현재 콘솔을 다른 터미널과 다른 사용자로 전환 할 수 있기 때문에).


명확히하기 위해 :
같은 명령 w, who등 터미널하는 기록됩니다 사람을 보여줍니다. 이것은 간단합니다. 그러나 현재 물리적 콘솔 (디스플레이, 키보드 등)을 소유하고있는 사람을 알고 싶습니다. 예를 들어, 두 사용자가 디스플레이를 실행 : 0 : 1, 나는와 디스플레이 사이를 전환 할 수 있습니다 ctrl+ alt+ 7과 ctrl+ alt+ 8, 나는 현재 자신의 표시와 실제, 실제 화면 사이의 연결을 가지고있는 사용자 알고 싶습니다 .


한 번 더 설명 : 내 사용자 이름
을 알고 싶지 않습니다 . 다른 사용자 또는 루트로 실행되고 실제 디스플레이 를 사용하는 사람을 알아야하는 스크립트가 있습니다. 다른 사용자가 실행하는 여러 개의 X 세션이있을 수 있습니다. 일부는 가상화되어 있으며 일부는 원격 X 서버에 연결되어 있지만 실제로 모니터에 출력을 표시하는 세션에만 관심이 있습니다.


또 다른 설명 :
명령이 무엇이든 Ctrl+ Alt+를 누른 후 F1(다른 가상 콘솔로 전환) 출력이 달라야합니다 .



답변

기술을 잘 모르기 때문에 구체적인 답변을 드릴 수는 없지만 D-Bus 및 ConsoleKit을 사용하여 찾을 수 있다고 생각합니다.

예를 들어, 나는 VT를 X로 전환하고 다시,이 듣기에 얻을 dbus-monitor:

$ dbus-monitor --system | grep ConsoleKit
signal sender=:1.16 -> dest=(null destination) serial=19039 path=/org/freedesktop/ConsoleKit/Session2; interface=org.freedesktop.ConsoleKit.Session; member=ActiveChanged
signal sender=:1.16 -> dest=(null destination) serial=19040 path=/org/freedesktop/ConsoleKit/Seat1; interface=org.freedesktop.ConsoleKit.Seat; member=ActiveSessionChanged
signal sender=:1.16 -> dest=(null destination) serial=19041 path=/org/freedesktop/ConsoleKit/Session2; interface=org.freedesktop.ConsoleKit.Session; member=ActiveChanged
signal sender=:1.16 -> dest=(null destination) serial=19042 path=/org/freedesktop/ConsoleKit/Seat1; interface=org.freedesktop.ConsoleKit.Seat; member=ActiveSessionChanged
   string "/org/freedesktop/ConsoleKit/Session2"

특히 GetActiveSession 메서드를 사용할 수 있습니다 . 방법은 다음과 같습니다 dbus-send(필요할 수 있음 sudo).

$ dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Seat1 org.freedesktop.ConsoleKit.Seat.GetActiveSession

그런 다음 응용 프로그램에 따라 반환되는 객체의 속성을 확인해야합니다 . 세션 의 객체 경로 여야합니다 .


답변

[geek@atremis ~]$ w

 20:02:02 up 2 days,  8:37,  3 users,  load average: 0.00, 0.01, 0.00

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

geek     tty1     :0               Thu11    2days 35.11s  0.18s pam: gdm-passwo

geek     pts/0    athena           Fri22   21:04m  0.03s  0.03s -bash

geek     pts/1    blackbeauty      20:02    0.00s  0.14s  0.10s w

[geek@atremis ~]$

w 명령을 사용하여 누가 로그온했는지 확인할 수 있습니다. 유휴 시간 및 실행중인 내용을 알려주는 것-이 경우 gdm은 활성 로그인을 나타내고 유휴 시간은 사용자가 2 일 동안 시스템에 있지 않은 것을 나타냅니다. 이것을 사용하지 않는 0.00 유휴 시간이있는 blackbeauty의 로그인과 대조해보십시오.


답변

여러 가지 방법이 있습니다.

  • whoami
  • w
  • echo $USER
  • logname

답변

다른 명령은

whoami

현재 로그인 한 사용자 이름을 보여줍니다


답변


이 글은 우분투 카테고리에 분류되었고 command-line, console, login, tty, username 태그가 있으며 [호호] 야야님에 의해 2022년 6월 13일에 작성되었습니다.

글 네비게이션

← 캐시를 정리하지 않고 yum이 로컬 저장소에 대한 업데이트를 보도록하려면 어떻게해야합니까? 새 RPM을 사용할 이메일 서버는 어떻게 설정합니까? 이메일을 받고 싶습니다. 메일 서버를 쉽게 →

태그

  • android
  • apt
  • backup
  • bash
  • boot
  • c#
  • c++
  • command-line
  • css
  • debian
  • email
  • firefox
  • git
  • google-chrome
  • hard-drive
  • html
  • ios
  • iphone
  • java
  • javascript
  • keyboard
  • linux
  • mac
  • macbook
  • macos
  • microsoft-excel
  • mysql
  • networking
  • performance
  • php
  • python
  • security
  • shell
  • ssh
  • terminal
  • ubuntu
  • unix
  • usb
  • vim
  • virtualbox
  • windows
  • windows-7
  • windows-8
  • windows-10
  • wireless-networking

최신 글

  • 디스크 정리에 많은 시간과 CPU가 필요한 이유는 무엇입니까? 많은 시간을 소비하는 것 같습니다. 파일을
  • Vim에서 일반 모드와 삽입 모드 사이에서 커서를 어떻게 변경합니까? 모양 등)를 변경하는 방법을 알고
  • 집계 대 구성 무엇인지 이해하지만 집계가 무엇인지에 대한 명확한
  • Python 생성기 패턴에 해당하는 C ++
  • 소프트웨어 일반인의 경력 경로는 무엇입니까? [닫은] 전문에 대한 질문 이 질문에 영감을. 소프트웨어 전문가가

카테고리

  • c#
  • c++
  • git
  • html
  • 리눅스
  • 서버
  • 소프트웨어
  • 슈퍼유저
  • 안드로이드
  • 애플
  • 우분투
  • 자바
  • 자바스크립트
  • 파이썬
  • 프로그래밍
apthow.com powered by hoya
Go to mobile version