사용자가 특정 컴퓨터를 원격으로 제어할 수 있도록 x11vnc를 사용하려고 합니다. 일반적으로 이것은 꽤 잘 작동하지만 구현하는 데 문제가 있는 한 가지 측면이 있습니다. 특정 사용자 계정에 대한 액세스를 제한하고 싶지만 X11 세션은 다른 사용자에게 속해 있습니다.
따라서 상황은 다음과 같습니다.
- 사용자 A가 컴퓨터에 로그인되어 있습니다.
- 사용자 B는 셸에서 x11vnc를 수동으로 시작합니다.
- VNC-클라이언트 V가 어딘가에서 연결됩니다.
문제는 x11vnc를 루트나 현재 로그인된 사용자로만 시작할 수 있다는 것입니다. 다른 사용자처럼 작동하지 않습니다. 특정 사용자가 내 X11 세션에 액세스하도록 허용하는 방법이 있습니까?
답변1
X 모니터는 연결하기 위해 제공해야 하는 "키"로 보호됩니다. 이 키는 일반적으로 사용자의 ~/.Xauthority
파일에 저장됩니다.
다른 사람의 응용 프로그램(예: x11vnc)이 그의 DISPLAY에 연결되도록 허용하려면 사용자가 그에게 이 키를 제공하거나 그의 ~/.Xauthority
파일에 대한 액세스 권한을 부여해야 합니다. 다음을 수행하여 모니터의 키를 검색할 수 있습니다.
xauth list "$DISPLAY"
~/.Xauthority
권한(그룹 소유권 또는 ACL)을 변경하여 액세스 권한을 부여할 수 있습니다.
다른 사용자는 다음을 지정할 수 있습니다.권위 있는 문서환경 변수를 통해 사용 XAUTHORITY
하거나 특정 디스플레이 키를 추가하여 사용 ~/.Xauthority
합니다 xauth add
.
답변2
X 세션에 대한 액세스 권한 부족으로 인해 시작할 수 없는 문제가 있는 경우 x11vnc
다른 사용자로 xhost +SI:localuser:other_username
시작하기 전에 다른 사용자에게 액세스 권한을 부여 해야 합니다 x11vnc
.
그러나 질문 제목은 VNC 서버에 대한 액세스를 제한하려는 것처럼 들립니다.