この `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サーバーへのアクセスを許可する一般的な方法は2つあります。1つはファイル経由です。Xauthorityこれはクライアント間で共有され、サーバー側での設定は必要ありません。もう1つはリスト経由です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 の回答

関連情報