이 `xhost ...` 명령은 무엇을 합니까?

이 `xhost ...` 명령은 무엇을 합니까?

이 명령줄을 이해하도록 도와주세요.

xhost +SI:localuser:lightdm

~에이 게시물의 답변을 참고하세요그리고 더 나은 방법이 있는지, 그리고 그것이 왜 필요한지 제안해 보세요. 매뉴얼 페이지에서는 많은 것을 만들 수 없었으므로 이를 간단하게 만들 수 있는 좀 더 자세한 답변을 기대합니다. (localuser를 내 사용자 이름으로 바꿔야 할까요? 그룹에 추가하는 것과 같은가요? +는 추가를 위한 것이지만 SI 또는 si를 이해하지 못합니다!)

사용자가 어떻게 추가되는지 언급해 주세요."연결이 허용된 목록"그게 무슨 뜻인지. 또한 현재 목록을 어떻게 확인하나요?

답변1

xhost +SI:localuser:lightdmlightdm사용자가 실행 중인 X 서버에 액세스할 수 있도록 합니다 . 현재 X 서버는 환경 변수로 표시됩니다 DISPLAY.


그만큼맨페이지합리적으로 좋은 설명이 있습니다.

   [+]name The given name (the plus sign is optional) is added to the list
           allowed to connect to the X server.  The name  can  be  a  host
           name or a complete name (See NAMES for more details).
...
NAMES
   A complete name has the syntax ``family:name'' where the  families  are
   as follows:
...
   si        Server Interpreted
...
   the server interpreted address "si:localuser:username" can be  used  to
   specify a single local user. (See the Xsecurity(7) manual page for more
   details.)

그리고Xsecurity맨페이지말한다:

SERVER INTERPRETED ACCESS TYPES
   The  sample  implementation   includes   several   Server   Interpreted
   mechanisms:
       IPv6                          IPv6 literal addresses
       hostname                      Network host name
       localuser                     Local connection user id
       localgroup                    Local connection group id

약간의 맥락을 살펴보면, X 서버에 대한 액세스를 허용하는 데 일반적으로 사용되는 두 가지 방법이 있습니다. 하나는 Xauthority클라이언트가 공유하는 파일을 통한 것이며 추가 서버 측 구성이 필요하지 않습니다. 다른 하나는 xhost목록을 통한 것입니다. 여기서 구성은 서버에서 수행됩니다.실행 시간(따라서 이는 영구적인 변경이 아닙니다).

따라서 localuser키워드는 그대로 유지됩니다( lightdm여기서는 사용자 이름, LightDM이 실행되는 사용자 이름). 이는 그룹이 서버의 승인을 이해한다는 점에서 그룹에 추가하는 것과 다소 유사합니다. 그러나 시스템 그룹이나 사용자는 영향을 받지 않습니다. X 서버의 런타임 구성만 변경됩니다.

인수 없이 실행할 때 의 기본 동작은 xhost맨페이지에 명시된 대로 목록을 인쇄하는 것입니다.

nothing If no command line arguments are given,  a  message  indicating
        whether  or not access control is currently enabled is printed,
        followed by the list of those allowed to connect.  

예를 들어:

$ xhost
access control enabled, only authorized clients can connect
SI:localuser:muru

아마도 코드를 조사하여 결정해야 할 것입니다.어떻게사용자가 목록에 추가되고 X가 해당 목록을 사용하는 방법.


이것이 수행되는 이유는 를 사용 gsettings하는 를 사용하기 위한 것인데 dbus, 이는 일반적으로 실행 중인 X 서버가 필요합니다. 그러나 이는 반드시 필요한 것은 아니며, 다음을 볼 수 있습니다.이 AskUbuntu 답변.

관련 정보