사용자 전환 시 X11 전달이 실패함

사용자 전환 시 X11 전달이 실패함

CentOS 6.6 클러스터에 나 자신으로 로그인하면(를 사용하여 ssh -AY user@ipaddress) X11 전달이 제대로 작동합니다. 예를 들어 사용자를 전환 sudo su user2하고 실행하려고 하면 xterm다음 오류가 발생합니다.

인증 오류로 인해 X11 연결이 거부되었습니다.

xterm Xt 오류: 디스플레이를 열 수 없습니다: localhost:11.0

이 경우 X11 전달이 작동하도록 하려면 어떻게 해야 합니까?

답변1

사용하면 sudo su모든 승인이 상실될 수 있습니다.

SSH 키 인증을 설정한 후 ssh -AY user2@localhost(또는 ssh -AY user2@localhost xterm)을 사용하세요.

답변2

이 문제를 겪은 사람은 당신이 처음이 아닙니다. 그 이유는 매우 간단합니다. X 서버가 인증 토큰을 요구하도록 (상당히 합리적으로) 설정되어 있고 두 번째 사용자는 해당 토큰에 액세스할 수 없습니다. 여러 가지 솔루션이 있습니다:

  1. 다른 사용자로 X11 응용 프로그램을 실행하지 마십시오. 자신으로서 xterm을 시작하여 다른 사용자로 쉘을 실행하십시오.

    xterm -e sudo -s user2
    

    분명히 이 접근 방식은 다른 사용자로 GUI 응용 프로그램을 실행해야 하는 경우에는 작동하지 않지만 더 복잡해지기 전에 항상 고려해 볼 가치가 있습니다.

  2. user2가 인증 없이 X 서버에 액세스할 수 있도록 허용합니다. 자신으로서 xhost를 사용하여 이 사용자를 추가하십시오:

    xhost +SI:localuser:user2
    
  3. 대신 설치 sux하고 사용하십시오 su. 이는 단순한 쉘 래퍼이지만 요즘에는 다음 솔루션과 같은 솔루션을 고려하면 대부분 제외됩니다.
  4. 구성 su하고 sudo사용하세요 pam_xauth. 이것은 (Debian의) 표준 모듈입니다 libpam-modules. 필요한 것은 라인을 추가하는 것뿐입니다

    session  optional  pam_xauth.so
    

    /etc/pam.d/su그리고 에 /etc/pam.d/sudo. 다른 옵션도 있지만(man 페이지 참조) 꼭 필요할 것 같지는 않습니다.

관련 정보