다른 사용자에게 소송을 제기하면 X11 전달이 작동하지 않습니다.

다른 사용자에게 소송을 제기하면 X11 전달이 작동하지 않습니다.

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명령이 중단되지 않습니다.

관련 정보