첫 번째 사용자가 display:0을 사용할 때 두 번째 사용자에 대한 xhost 액세스를 어떻게 활성화합니까?

첫 번째 사용자가 display:0을 사용할 때 두 번째 사용자에 대한 xhost 액세스를 어떻게 활성화합니까?

내 상황은 다음과 같습니다.

내 컴퓨터 중 하나에 두 명의 (sudo) 사용자가 있습니다.

  1. userA(머신에서 먼저 생성하세요. :0모니터를 연결하는 곳이기도 합니다.)
  2. userB(나중에 생성됨)

지금 userA나는하고 있습니다 :

export DISPLAY=:0.0
xclock

DISPLAY:0예상대로 시계가 열립니다.

이제 나는 같은 단계를 따르고 싶습니다 userB. 그러나 불행히도 다음과 같이 표시됩니다.

No protocol specified
xhost:  unable to open display ":0.0"

내가 시도한 것:

  1. 다음 을 사용하여 신뢰할 수 있는 xauth 키를 만듭니다. xauth generate :0.0 . trusted다시 표시unable to open display ":0.0"
  2. /home/userA/.Xauthority( 참고 : 작동하지만 xauth 목록에 디스플레이 :0과 관련된 키가 표시되지 않습니다 /home/userB/.Xauthority. )userA
  3. :0on에 대해 신뢰할 수 있는 xauth 키를 생성 userA하고 해당 키를 에 복사합니다 userB.

이들 중 어느 것도 작동하지 않습니다.

작동하는 것:

  1. 로그인했습니다 userA. export DISPLAY=:0.0그런 다음 xhost +모든 클라이언트에 대한 액세스를 활성화했습니다.
  2. 나는 다시 로그인 했다 userB.export DISPLAY=:0.0xclock

userA1단계를 없애고 싶습니다. 매번 로그인하고 싶지는 않습니다. 나는 시도했지만 xhost +위에 userB이미 표시된 오류가 표시되었습니다.

액세스 권한이 있다고 생각하면서 xhost +어떻게 실행할 수 있나요 ?userBDISPLAY:0

편집하다: @user414777이 언급했듯이 다음을 수행할 수 있었습니다.

# On userA
$ xhost +si:localuser:userB

# On userB
$ export DISPLAY=:0.0 ; xclock

그리고 작동시키세요. 그러나 이러한 변경 사항은 재부팅 후에도 유지되지 않습니다.

# After rebooting, on userB
$ export DISPLAY=:0.0 ; xclock
Invalid MIT-MAGIC-COOKIE-1 keyError: Can't open display: :0.0

저는 Ubuntu 18.04 LTS, 4.18.0-15-generic을 실행하고 있습니다.

해결됨

나는 결국 @user414777의 약간 안전하지 않고 수정된 제안을 받아들였습니다. ~/.xsession또는 에 변경 사항을 추가하는 대신 모든 사용자에게 변경 사항을 적용하는 줄 Xsession.d을 추가했습니다 ./etc/profile

답변1

대부분의 "최신" Linux 시스템에서는 다음을 수행할 수 있습니다.

xhost +si:localuser:userB

userA다음 계정으로 실행(이미 모니터에 액세스할 수 있는 사람)하면 userB연결할 수 있습니다(올바른 DISPLAY환경 변수를 설정하거나 올바른 -display명령 --display줄 옵션을 사용하는 경우).

이것은 매우 안전하지 않지만 (적어도 Debian에서는) 지원되는 유일한 것입니다 Xwayland.강제로심지어 일반 것들 Xorg.


xauth(1)매뉴얼 페이지와 여기 및 다른 곳에서 많은 답변에 이미 언급된 일반적인 접근 방식은 다음과 같습니다.

xauth extract - "$DISPLAY" | ssh userB@localhost xauth merge -

하지만 내 시스템에서는 이 기능이 에서만 작동 Xorg하고 에서는 작동하지 않습니다 Xwayland. 위 명령을 사용하면 su또는 sudo대신 을 사용 ssh하거나 두 단계로 수행할 수 있습니다.

관련 정보