XVnc를 실행하는 Red Hat 7.3 서버가 있습니다. Windows 10 데스크톱에 Putty와 Xming을 설치했습니다. Putty는 X11 전달을 위해 구성되었습니다. SSH를 통해 표준/권한 없는 사용자로 로그인하고 X 응용 프로그램을 실행하면 Windows 10 데스크탑에 아무런 문제 없이 표시됩니다.
이제 동일한 세션 내에서 더 높은 권한을 가진 계정을 사용하고 X 응용 프로그램을 실행하려고 하면 "오류: 디스플레이를 열 수 없습니다"라는 메시지와 함께 실패합니다.
표준 사용자 세션에서 $DISPLAY를 에코하면 자동으로 "IP_ADDRESS:10.0"으로 설정됩니다. 내 su 세션에서 $DISPLAY가 비어 있습니다. DISPLAY 변수를 동일한 값으로 내보내려고 했지만 이제 "PuTTY X11 프록시: 지원되지 않는 인증 프로토콜 오류: 디스플레이를 열 수 없습니다: server_IP:10.0"이라는 다른 오류가 발생합니다.
다른 사용자의 컨텍스트에서 작동하도록 X11 전달을 구성하려면 어떻게 해야 합니까?
답변1
다음 단계에 따라 문제를 해결해야 합니다.
작동 user1
중이고 사용하고 싶다고 말하세요.user2
을 위한 user1
:
$ xauth list $DISPLAY
<output1>
$ echo $DISPLAY
<outoput2>
다른 사용자로 전환합니다.user2
$ xauth add <output1>
$ export DISPLAY=<output2>
노력하다:
$ xclock
답변2
X11은 연결이 사용자에게 속해 있음을 보여주기 때문입니다.SSH를 통해 로그인.
X11Forwarding
이 메커니즘은 다른 사람이 디스플레이를 사용하는 것을 허용하지 않습니다.
다행히도 해결책이 있습니다. 다른 사용자를 사용 하고 변경한 su
후 다음 명령을 실행하십시오.
xauth add $(xauth -f ~username/.Xauthority list | tail -1)
원래 사용자 ~username
, 즉 서버에 연결한 사용자는 어디에 있습니까?
분명히 새로운 사용자에게 읽기 권한이 충분하다면 ~username/.Xauthority
(즉, 이렇게 su
하면 root
문제가 없고 다른 사용자에게는 이것이 작동하면)가능한작동하지 않으면 권한을 확인/수정해야 합니다).
답변3
Daniele의 솔루션이 약간 변경되었습니다.
xauth add $(xauth -i -f ~username/.Xauthority list | tail -1)
이 -i
옵션은 잠금을 무시하므로 xauth list
명령이 중단되지 않습니다.